2814: 【例46.3】 素数回文数的个数
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:12
解决:5
题目描述
求$11$到$n$之间(包括$n$),既是素数又是回文数的整数有多少个。
输入
一个大于$11$且小于$1000$的整数$n$。
输出
$11$到$n$之间的素数回文数个数。
样例输入 复制
23
样例输出 复制
1
提示
#include<bits/stdc++.h> using namespace std; int n,cnt; bool is_p(int x){ if(x<2) return false; if(x==2) return true; for(int i=2;i*i<=x;i++){ if(x%i==0) return false; } return true; } bool is_r(int x){ int a[10],cnt=0; memset(a,0,sizeof(a)); while(x>0){ cnt++; a[cnt]=x%10; x/=10; } for(int i=1;i<=cnt/2;i++){ if(a[i]!=a[cnt-i+1]) return false; } return true; } int main(){ cin>>n; for(int i=11;i<=n;i++){ if(is_p(i)&&is_r(i)) cnt++; } cout<<cnt; return 0; }