Informatică, întrebare adresată de catalinsilipas, 8 ani în urmă

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


ajutbia: Ma poți ajuta la un aritmogrif

Răspunsuri la întrebare

Răspuns de andrei750238
1

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";

}


catalinsilipas: #include
using namespace std;
int main() {
int a, a2;
cin >> a;
a2 = a;
if (a2 == 0 || a2 == 1) {
cout << "NU";
}
int i = 2, is_prime = 1;
while (i * i <= a2) {
if (a2 % i == 0) {
is_prime = 0;
}
++i;
}
int mirr = 0;
while (a != 0) {
mirr = (mirr * 10) + (a % 10);
a = a / 10;
}
while (i * i <= mirr) {
if (mirr % i == 0) {
is_prime = 0;
}
++i;
}
if (is_prime == 1) {
cout << "DA";
}
else {
cout << "NU";
}
return 0;
}
catalinsilipas: Nici macar codul asta care l-am scris eu deja nu e perfect, dar am pus problema ca sa vad daca cineva descopera ceva in ordinea conditiilor care face ca acest cod sa nu merite 100 pct.
Alte întrebări interesante