Sa se afiseze numerele prime de trei cifre care citite invers sunt tot numere prime.
Va roog ajutor,apropo,sunt clasa a 9-a,nu am facut inca cu numar(i),ceva de genu,vreau sa ma ajutati,eu am facut codul sursa dar gresesc ceva mereu la el!!!
Va rog ajutor! Doresc rezolvarea in C++ nu exemple de numere
Răspunsuri la întrebare
Răspuns de
5
Ai nevoie de doi algoritmi elementari: oglinditul unui numar si testul de prim. Iti scriu main-ul, sper sa nu fie o problema;
int main(){int i,p,x,ok1,ok2,d;
for(i=101;i<=997;i++)//nu iau in calcul 100, 998, 999 fiindca nu sunt numere prime
{//test prim pentru i
ok1=1;
for(d=2;d*d<=i;d++) if(i%d) ok1=0;
if(ok1)//daca i este prim, incep sa calculez oglinditul
{
//algoritm realizare oglindit, incep prin a face o copie lui i;
x=i;p=0;
while(x){p=p*10+x%10;x/=10;}
ok2=1;
for(d=2;d*d<=p;d++) if(p%d) ok2=0;
if(ok2) cout<<i<<' ';
}}
return 0;}
Un alt algoritm mult mai eficient este folosirea Ciurului lui Euclid, dar nu stiu daca ati vorbit de el. Oricum, implementarea si explicatia lui se gasesc pe net.
int main(){int i,p,x,ok1,ok2,d;
for(i=101;i<=997;i++)//nu iau in calcul 100, 998, 999 fiindca nu sunt numere prime
{//test prim pentru i
ok1=1;
for(d=2;d*d<=i;d++) if(i%d) ok1=0;
if(ok1)//daca i este prim, incep sa calculez oglinditul
{
//algoritm realizare oglindit, incep prin a face o copie lui i;
x=i;p=0;
while(x){p=p*10+x%10;x/=10;}
ok2=1;
for(d=2;d*d<=p;d++) if(p%d) ok2=0;
if(ok2) cout<<i<<' ';
}}
return 0;}
Un alt algoritm mult mai eficient este folosirea Ciurului lui Euclid, dar nu stiu daca ati vorbit de el. Oricum, implementarea si explicatia lui se gasesc pe net.
Alte întrebări interesante
Biologie,
8 ani în urmă
Chimie,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă