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.