Salutare!Ma puteti ajuta la aceasta problema?Vreau sa specifil ca doresc rezolvarea problemei doar folosind if si while !
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.
Eu am rezolvat asa dar nu inteleg ce am gresit!
#include
using namespace std;
int main() {
int a, nr_invers = 0, ramas;
cin >> a;
int Ca = a;
while (a != 0) {
ramas = a % 10;
nr_invers = nr_invers * 10 + ramas;
a /= 10;
}
int i = 2, este_prim = 1, este_prim2 = 1;
while (i < a) {
if (a % i == 0) {
este_prim = 0;
}
++i;
}
while (i < nr_invers) {
if (nr_invers % i == 0) {
este_prim2 = 0;
}
++i;
}
if (Ca == 1) {
este_prim = 0;
}
if (nr_invers == 1) {
este_prim2 = 0;
}
if (este_prim == 1 && este_prim2 == 1) {
cout << "DA";
}
else {
cout << "NU";
}
return 0;
}
Răspunsuri la întrebare
Răspuns de
0
Răspuns:
#include <iostream>>
using namespace std;
int main()
{
int n,oglindit=0,c,p=10,i=2,ok1=1,ok2=1;
cout<<"Citeste numarul: ";
cin>>n;
while(n!=0){
c=n%10;
n=n/10;
oglindit=oglindit*p+c;
}
while(i<=n/2){
if(n%i==0){
ok1==0;
}
i++;
}
i=2;
while(i<=oglindit/2){
if(n%i==0){
ok2==0;
}
i++;
}
if(ok1==1 && ok2==1)
cout<<"da";
else
cout<<"nu";
return 0;
}
Explicație:
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Franceza,
8 ani în urmă
Matematică,
9 ani în urmă
Chimie,
9 ani în urmă