预计阅读时间:5分钟
原题
描述
求11到n之间(包括n),既是素数又是回文数的整数有多少个。
输入
一个大于11小于1000的整数n。
输出
11到n之间的素数回文数个数。
样例输入
23
样例输出
1
提示
回文数指左右对称的数,如:292,333。
思路
水题大模拟
代码
来,上代码
#include<iostream>
#include<cstdio>
#include<queue>
#include<cmath>
using namespace std;
int ans[10001];
int now;
int cnt;
int vis[10001];
int main()
{
int n;
cin>>n;
for(int i=2; i<=sqrt(n+0.5); i++)
{
if(vis[i]==0)
{
for(int j=i*i; j<=n; j=j+i)
{
vis[j]=1;
}
}
}
for(int i=11; i<=n; i++)
{
if(vis[i]==1)
{
continue;
}
else
{
int t=i;
int g=t%10;
t=t/10;
int s=t%10;
if(t/10==0)
{
if(g==s)
{
cnt++;
}
}
else
{
t=t/10;
int b=t%10;
if(g==b)
{
cnt++;
}
}
}
}
cout<<cnt;
return 0;
}
希望本博客对大家有所帮助!