ASTA E RASPUNSUL LA LECTIA INVERS PRIM PEWELLCODE ,
#include
using namespace std;
int main() {
int a, x, o, prim1, prim2, d;
cin >> a;
x = a;
o = x % 10;
x = x / 10;
while(x != 0) {
o = o * 10 + x % 10;
x /= 10;
}
prim1 = 1;
prim2 = 1;
d = 2;
while(d <= a / 2) {
if(a % d == 0) {
prim1 = 0;
}
d++;
}
d = 2;
while(d <= a / 2) {
if(o % d == 0) {
prim2 = 0;
}
d++;
}
if(a == 1) {
prim1 = 0;
}
if(prim1 == 1 && prim2 == 1) {
cout << "DA";
} else {
cout << "NU";
}
return 0;
}
NU INTELEG CE E CU x=a copia lui a este x dar , nu intele ce e cu oglinditul o = x%10 si x=x/10
PROBLEMA ARE ENUNTUL URMATOR:
Invers Prim 2539
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 < 300 000
a nu are ultima cifră 0
MULTUMESC !
Răspunsuri la întrebare
Răspuns:
Ca sa construiesti oglinditul unui numar, va trebui sa iei cifrele de la sfarsitul numarului spre inceput. Pentru asta te folosesti de 2 operatii:
x%10 este ultima cifra a numarului x;
x/10 "taie" ultima cifra din numarul x;
Cum se procedeaza:
- iei ultima cifra din numar (x%10) si o adaugi oglinditului (ca sa o adaugi la sfarsit inmultesti oglinditul cu 10 si aduni ultima cifra a nr x: o=o*10+x%10)
-"tai" ultima cifra din numar si ramai
Repeti cei doi pasi de mai sus cat timp numarul mai are cifre, adica (x!=0)
La sfarsitul algoritmului, numarul va fi 0, deci daca mai ai nevoie de el, trebuie sa ii retii valoarea(de-aia a facut x=a; ca sa retina valoarea nr a nemodificata)
In algoritmul tau se porneste cu oglinditul luand valoarea ultimei cifre a lui x (o=x%10) si "taie" aceasta cifra din nr (x=x/10), apoi repeta cei doi pasi de care ziceam mai sus cat timp x!=0
o=x%10 si x=x/10 puteau sa fie inglobate in while-ul ala, astfel:
x=a; o=0; //initial oglinditul nu are nicio cifra si ii dau valoarea 0.
while (x!=0)
{o=o*10+x%10;
x=x/10;}
Explicație: