342
Cerința
Se dau n numere naturale. Aflaţi câte dintre ele sunt palindrom prim norocoase. Un număr este palindrom prim norocos dacă este palindrom (egal cu răsturnatul său, de exemplu 121), prim (are exact 2 divizori, de exemplu 3) şi norocos (pătratul numărului se poate scrie ca sumă de numere consecutive, exemplu 3. 3 * 3 = 9 = 2 + 3 + 4).
Date de intrare
Se va citi de la tastatura numărul n si n numere naturale separate prin spații.
Date de ieșire
Se va afisa numarul de numere care respecta conditiile.
Restricții și precizări
1 ≤ n ≤ 1000- cele
nnumere vor fi mai mici decât2.000.000.000.
Exemplu
Intrare
6 2 3 5 7 11 24
Ieșire
4
Explicație
Sunt 6 numere, dintre care doar 4 respectă condițiile: 3, 5, 7 şi 11.
#include <bits/stdc++.h>
using namespace std;
int prim(int n)
{
int cnt=0;
for(int i = 1 ; i * i <= n ; ++i)
{
if(n%i==0)
cnt+=2;
if(i*i==n)
cnt--;
}
if(cnt==2)
return 1;
else
return 0;
}
int pal(int n)
{
int ogl=0;
int cn=n;
while(n)
{
ogl=ogl*10+n%10;
n/=10;
}
if(ogl==cn)
return 1;
else
return 0;
}
int main()
{
int n;
cin >> n;
int a[1000];
int cnt=0;
for(int i = 0 ; i < n ; ++i)
cin >> a[i];
for(int i = 0 ; i < n ; ++i)
{
if(pal(a[i])&&prim(a[i])&&a[i]%2==1)
cnt++;
}
cout << cnt;
return 0;
}
Comentarii