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 Exemplu
Date de intrare & Date de ieșire
5----------------------------- DA
122 --------------------------- NU
17------------------------------- DA
(am invatat doar: if, else, if else, while)

Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int oglindit(int x)

{

int og = 0;

while (x)

{

 og = og * 10 + x % 10;

 x /= 10;

}

return og;

}

bool prim(int x)

{

if ((x < 2) || (x % 2 == 0 && x > 2))

{

 return false;

}

else

{

 for (int i = 2; i * i <= x; i++)

 {

  if (x % i == 0)

  {

   return false;

  }

 }

}

return true;

}

int main()

{

int a;

cin >> a;

if (prim(a) && prim(oglindit(a)))

{

 cout << "DA";

}

else

{

 cout << "NU";

}

}

Explicație: Faci o functie ca sa determini oglinditul, faci inca o functie ca sa verifici daca este numarul prim si dupa le aplici intr-o conditie de tip If.