Hai số tự nhiên được gọi là nguyên tố tương đương nếu chúng có chung các ước số nguyên tố.
Ví dụ như các số 75 và 15 là nguyên tố tương đương vì cùng có các ước nguyên tố là 3 và 5.
Cho trước hai số tự nhiên M và N. Hãy viết chương trình kiểm tra xem các số này có là nguyên tố tương đương với nhau không?
Lời giải tham khảo
uses crt;
var
a:array [1..100] of integer;
i,k,m,n:integer;
Begin
clrscr;
Write('Ban hay nhap so thu nhat:');Readln(m);
Write('Ban hay nhap so thu hai:');Readln(n);
if m<n then begin k:=m;m:=n;n:=k;end;
i:=1;k:=0;
Repeat
i:=i+1;
if (m mod i=0) and (n mod i=0) then
begin
if k=0 then
Writeln('Hai so tren la hai so nguyen to tuong duong voi nhau vi co cac uoc nguyen to:');
k:=1;Write(i,' ');
While (m mod i=0) and (n mod i=0) do
begin
m:=m div i;n:=n div i;
end;
end;
Until i>=n;
if k=0 then
Writeln('Hai so tren khong phai la hai so nguyen to tuong duong voi nhau.');
Readln;
End.
10.04.2017
Subscribe to:
Post Comments (Atom)
tks
ReplyDelete#include
ReplyDeleteusing namespace std;
long long t1=1,t2=1,a,b,d1,d2;
int main()
{
freopen("baiio09.inp","r",stdin);
freopen("baiio09.out","w",stdout);
cin>>a>>b;
for(int i=2;i<=sqrt(a);i++)
{
if(a%i==0) {d1++; t1=t1*i; while(a%i==0) a=a/i;}
}
if(a>1) {d1++; t1=t1*a;}
for(int i=2;i<=sqrt(b);i++)
{
if(b%i==0) {d2++; t2=t2*i; while(b%i==0) b=b/i;}
}
if(b>1) {d2++; t2=t2*b;}
if(t1==t2&&d1==d2) cout<<t1;
else cout<<"no";
}
c++ cho ai cần