👤

Dându-se un număr natural a, să se verifice dacă a și inversul (oglinditul) lui a sunt ambele numere prime.

Date de intrare
Se citește de la tastatură numărul natural a.

Date de ieșire
Să se afișeze DA dacă numărul a și inversul său sunt ambele prime sau NU, în caz contrar.

Restricții și precizări
1 ≤ a < 300000
a nu are ultima cifră 0
folositi doar while loop


Răspuns :

int main(){

int a, inv=0,ok=1,d;

cin >> a;

copiea = a;

 

//Verifica daca a este prim

if(a < 2) ok = 0;

d=2;

while(d <= a/2 && ok==1){

 if(a%d==0) ok = 0;

 d++;

}

 

//Construieste inversul lui a

while(a>0){

 inv = inv*10+a;

 a = a/10;

}

 

//Verifica daca inversul este prim

if(inv < 2) ok = 0;

d=2;

while(inv <= a/2 && ok==1){

 if(inv%d==0) ok = 0;

 d++;

}

 

if(ok==1) cout << "Da";

else cout << "Nu";

}