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
Problema e de pe wellcode si asta e rezolvarea mea:
#include
using namespace std;
int main() {
int a;
cin>>a;
int ca=0;
while (a>0) {
ca=ca*10;
ca=ca+a%10;
a=a/10;
}
int i=2, numar_prim=1, numar_prim2=1;
while (i
if(ca%i==0) {
numar_prim2=0;
}
++i;
}
if(ca==1)
numar_prim2=0;
i=2;
while (i
if (a%i==0) {
numar_prim=0;
}
++i;
}
if (a==1)
numar_prim=0;
if(numar_prim==1 && numar_prim2==1)
cout<<"DA";
else
cout<<"NU";
return 0;
}
Imi puteti spune unde am gresit?
CinevaFaraNume:
Lipseste o parte din conditie aici: "while (i if (a%i==0) {"
Răspunsuri la întrebare
Răspuns de
1
Răspuns:#include <iostream>
using namespace std;
int main() {
int a,ca=0,og=0,se=0;
cin>>a;
ca=a;
while (a!=0){
og=og*10+a%10;
a=a/10;
}
a=ca;
for(int i=2;i<a;i++){
if(a%i==0 || og%i==0) {
se++;
break;
}
}
if(se==0) cout<<"DA";
else if(se!=0) cout<<"NU";
return 0;
}
Explicație: a este numarul
ca este copia
og este oglinditul
se inseamna ca se imparte la un numar (i) = nu este prim
am folosit break , sper ca intelegi de ce.
Alte întrebări interesante
Matematică,
8 ani în urmă
Franceza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă