Bài tách số: Viết chương trình tách só nguyên dương A (A<200) thành tổng của hai số nguyên dương x và y sao cho UCLN d của x và y là lớn nhất trong các cách có đc YÊU CÂU Dữ liệu vào: File text Tachso.INP chỉ có 1 dòng chứa số ng dương A. Dữ liệu ra: File text Tachso.OUT gồm 2 dòng: -Dòng 1: Ghi Số ng dương a Dòng 2 ghi 3 số nguyên dương x,y,d mỗi số cách nhau 1 khoảng trắng PLS mình đang cần gấp
2 câu trả lời
uses crt;
var x,y,n,d,i:longint;
begin
clrscr;
repeat
write('n=');readln(n);
until n<200;
If n mod 2=0 then begin x:=n div 2; y:=n div 2; end;
If n mod 2=1 then begin x:=n div 2+1; y:=n div 2; end;
For i:=1 to x do If(x mod i=0)and(y mod i=0)then d:=i;
Writeln(x);
Writeln(y);
Writeln(d);
readln
end.
#include<bits/stdc++.h>
using namespace std;
int ucln(int a, int b)
{
while (a*b != 0){
if (a > b){
a %= b;
}else{
b %= a;
}
}
return a + b;
}
int main()
{
int x,y,A,d=0,m,n;
cout<<"Nhap A:";
cin>>A;
for(int i=1;i<A;i++){
x=i;
y=A-x;
if(ucln(x,y)>d){
m=x;
n=y;
d=ucln(x,y);
}
}
cout<<A<<"\n"<<m<<" "<<n<< " "<<d;
//samon247
return 0;
}
//bạn tự chuyển thành in out file nhé :))