398
Cerinţa
Se dau două numere naturale nenule. Să se verifice dacă cele două numere au exact aceiași factor primi, indiferent de puterea acestora.
Date de intrare
Programul citește de la tastatură numerele n și m.
Date de ieşire
Programul afișează pe ecran mesajul DA, dacă cele două numere au exact aceiași factori primi, respectiv NU în caz contrar.
Restricţii şi precizări
- cele două numere citite vor fi mai mici decât 2 30
Exemplu 1:
Intrare
72 48
Ieșire
DA
Explicație
72 și 48 au exact aceiași factori primi: 2 3.
Exemplu 2:
Intrare
72 30
Ieșire
NU
Explicație
Factorii primi ai lui 72 sunt 2 3, iar factorii primi ai lui 30 sunt 2 3 5.
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
bool aceiasi_factori = true;
int d = 2;
while(a > 1){
int p = 0;
if(a % d == 0){
if(b % d != 0){
aceiasi_factori = false;
}
while(a % d == 0)
a /= d;
while(b % d == 0)
b /= d;
}
d++;
if(d * d > a)
d = a;
}
if(aceiasi_factori && b == 1)
cout << "DA";
else
cout << "NU";
return 0;
}
Comentarii