【题目描述】
求11到n之间(包括n),既是素数又是回文数的整数有多少个。
【输入】
一个大于11小于1000的整数n。
【输出】
11到n之间的素数回文数个数。
【输入样例】
23
【输出样例】
1
【提示】
提示:
回文数指左右对称的数,如:292,333。
这道题,可以使用素数函数和回文函数
两个函数具体如下
bool pd(int x)
{
if(x==1 || x==0) return 0;
for(int i=2;i<=x/i;i++)
{
if(x%i==0)
{
return 0;
}
}
return 1;
}
int hw(int n)
{
int x = 0;
int s = n;
while(s>0)
{
x = x*10+s%10;
s = s/10;
}
if(x==n)
{
return 1;
}
else
{
return 0;
}
}
(没时间打注释了,sorry)
整体代码
// 1408
#include<bits/stdc++.h>
using namespace std;
int n;
int sum;
int hw(int n)
{
int x = 0;
int s = n;
while(s>0)
{
x = x*10+s%10;
s = s/10;
}
if(x==n)
{
return 1;
}
else
{
return 0;
}
}
bool pd(int x)
{
if(x==1 || x==0) return 0;
for(int i=2;i<=x/i;i++)
{
if(x%i==0)
{
return 0;
}
}
return 1;
}
int main(){
cin>>n;
for(int i=11;i<=n;i++)
{
if(hw(i) && pd(i)) sum++; //条件都满足,计数器++
}
cout<<sum;
return 0;
}
(我妈一直在催我,只打了一行注释,实在对不起o(╥﹏╥)o)
此代码仅供参考,请勿纯抄