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

am primit doar jumatate de punctaj;
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 ≤ 2000000000
a nu are ultima cifră 0
Exemplu
Date de intrare Date de ieșire
5 DA
122 NU
17 DA
ce am facut eu:
#include
using namespace std;
int main()
{
int a,b=0,ca;

cin>>a;
ca=a;
while (a!=0){
b=b*10+a%10;
a=a/10;
}
cin>>ca;
int prim,d;
prim=1;
d=2;
while (d<=ca/2)
{if (ca%d==0)
prim=0;
d=d+1;
}
cin>>b;
int prim_2,e;
prim_2=1;
e=2;
while (e<=b/2)
{if (b%e==0)
prim_2=0;
e=e+1;
}
if(d>2 && e>2)
cout<<"DA";
else
cout<<"NU";
return 0;
}


gabi54t: nu se intelege deloc ce ai facut tho :))
gabi54t: adica te-ai complicat mult prea mult si nu trebuia sa citesti decat pe a din cate vad
gabi54t: also, de pe ce site e problema ca am facut o rezolvare dar vreau s-o testez inainte sa postez
gabi54t: sa ma asigur ca da maximul punctajului
siminiucdenisp76ypw: wellcode
gabi54t: si trebuie sa fie facut cu while neaparat?
siminiucdenisp76ypw: nu cred

Răspunsuri la întrebare

Răspuns de gabi54t
1

#include <iostream>


using namespace std;


int main()

{

  long long unsigned a, cp, pp=1, ok=1, inv=0, d;

   cin>>a;

   cp=a;

   while(cp)

   {

       inv=inv*10+cp%10;

       cp=cp/10;

   }

   for(d=2; d<=a/2; d++)

       if(a%d==0)

       pp=0;

   for(d=2; d<=inv/2; d++)

       if(inv%d==0)

       ok=0;

       if(pp==1 && ok==1)

   cout << "DA";

   else

       cout<<"NU";

   return 0;

}

nu stiu exact cum sa verific pe wellcode so sper sa dea punctaj


siminiucdenisp76ypw: merci mult
siminiucdenisp76ypw: tot 50p imi da
gabi54t: idk
vasilemihai78: Salut! Daca nu ai reusit intre timp la programul atasat de Gabi54t trebuie sa adaugi la conditie ca nr introdus sa fie diferit de 1 (1 nu este nr prim) cu acesta conditie if(pp==1 && ok==1&& a!=1)
trebuie sa mearga perfect. Bafta!
gabi54t: ah da, am uitat si de asta :))
Alte întrebări interesante