10.04.2017

Số nguyên tố tương đương

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.

2 comments:

  1. #include

    using 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

    ReplyDelete

Cảm ơn bạn đã nhận xét