Hai số gọi là nguyên tố tương đương nếu chúng có cùng các ước số nguyên tố. Ví dụ 15 và 75 là các số nguyên tố tương đương. Bởi vì 15=3*5 trong khi 75=3*5^2, có cùng ước số nguyên tố là 3 và 5. Tương tự 12=2^2*3 và 18=2*3^2 là hai số nguyên tố tương dương vì có cùng hai ước số nguyên tố là 2 và 3. Tuy nhiên 12 và 60 ko nguyên tố tương đương vì 12=2^2*3 và 60=2^2*3*5, 60 có ước số nguyên tố 5 trong khi 12 không có. Hãy viết chương trình nhập 2 số M và N kiểm tra xem 2 số này phải là 2 số NT tương đương cùng nhau ko mọi người viết theo cách là: làm 1 cái function UCLN, 1 cái function NT rồi mọi người hoàn thiện giúp em cách này đc ko ạ

1 câu trả lời

uses crt;
var a,b,i,cnt1,cnt2,n,m:longint;
procedure YES;
begin
    writeln(n,' ',m,' la 2 so nguyen to tuong duong');
    readln;
end;
procedure NO;
begin
    writeln(n,' ',m,' khong phai 2 so nguyen to tuong duong');
    readln;
end;
begin
    clrscr;
    readln(a,b);
    n:=a;m:=b;
    i:=2;
    while (a <> 1) and (b <> 1) do
        begin
            while a mod i = 0 do    
                begin
                    a:=a div i;
                    inc(cnt1);
                end;
            while b mod i = 0 do 
                begin
                    b:=b div i;
                    inc(cnt2);
                end;
            if (cnt1 = 0) and (cnt2 <> 0) then
                begin
                    NO;
                    exit;
                end;
            if (cnt2 = 0) and (cnt1 <> 0) then
                begin
                    NO;
                    exit;
                end;
            inc(i);
        end;
    if a = b then YES else NO;
end.

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