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

Sa se scrie un algoritm in c++, unde:
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.

Răspunsuri la întrebare

Răspuns de boiustef
1

#include <iostream>

using namespace std;

int main()

{

   int a,inv,c,d1=0,d2=0;

   cin>>a;

   for (int i=1;i<=a ;++i){   // aici numaram in d1 nr de divizori a  numaruluui a

       if (a%i==0) ++d1;

   }

   if (d1==2)

    {       // daca nr de divizori este 2, nr dat este prim

       inv=0;          // aici cream inversul nr dat a

       while (a!=0)

       {

          c=a%10;

          inv=inv*10+c;

          a=a/10;

       }

       for (int i=1;i<=inv ;++i){  // aici in d2 numaram cati divizori are inv

       if (inv%i==0) ++d2;

       }

       if(d2==2) cout<<"DA";   // daca si d2 = 2 at ambele sunt prime

       else cout<<"NU";        // altfel nu

   } else cout<<"NU";          // aici e cazul cand d1!=2 , adica nr dat nu e prim

   return 0;

}


boiustef: evident, primalitatea se poate determina mai eficace, dar wellcode accepta aceasta varianta
andreimadroane: Am copiat codul si nu merge, terog ajuta-ma
andreimadroane: https://lh3.googleusercontent.com/whysM1xNBisPOeHag8hXukuSEEr0DUQaotV9sn0Xp6pboCPqRsHHZ86Us_quS85Qlw8wlsg=s170
andreimadroane: https://imgur.com/a/UtoFxWZ
andreimadroane: asta cu imgur uitete
boiustef: buna seara... cred totul e de la copiere ... cred tr sa stergi toate spatiile libere din fata randului unde arata eroare...
de exemplu in linia 15 pana la if sterge spatiile libere, apoi aranjeaza if-ul unde vrei si mai testeaza dinnou, daca iti arata la alta linie procedaza la fel
andreimadroane: Multumesc!
Alte întrebări interesante