Răspuns:
#include <iostream>
using namespace std;
int n;
bool Pal(int x)
{
int p=0,cif, copie=x;
while (x>0)
{
cif=x%10;
p=p*10+cif;
x=x/10;
}
return p==copie;
}
bool Prim(int x)
{
if (x<2) return false;
if (x==2) return true;
else
{
if (x%2==0) return false;
else
for (int j=3; j*j<=x; j+=2)
if (x%j==0) return false;
}
return true;
}
int main()
{
cout << "N="; cin >> n;
if (Pal(n))
{
if (Prim(n)) cout << "Palindrom si Prim";
else cout << "Palindrom";
}
else{
if (Prim(n)) cout << "Prim";
else cout << "Numarul nu este special";}
return 0;
}
Explicație:
am adăugat cazul când numărul este şi Palindrom, şi Prim. De exemplu 7 este Palindrom şi Prim