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é :))

Câu hỏi trong lớp Xem thêm