类型:枚举
题目描述
桐桐在研究素数时,发现有些素数很特另lJ,例如131,它是素数,同时,它又是回文数:从左边读和从右边读都是同一个数。桐桐想把不大于n的所有既是回文数又是素数的数求出来,你能帮助她吗?
输入
只有一个整数n(2≤n≤106)。
输出
输出满足题设条件的数,每行输出1个数。
样例输入 Copy
100
样例输出 Copy
2 3 5 7 11
//大意就是求2——n范围内满足即是回文数也是质数(素数)的;
#include <bits/stdc++.h> using namespace std; //判断是否为质数(素数) bool cmp(int b){ for(int i=2;i<=sqrt(b);i++){ if(b%i==0){ return false; } } return true; } //判断是否为回文数 bool cmp1(int b) { //转字符串 string s=to_string(b); //位数 int c=s.length()-1; int ans=0; int d=c; for(int i=0;i<=c;i++){ if(s[i]==s[d--]){ ans++; } } if(ans==c+1){ return true; } else{ return false; } } int main() { int a; cin>>a; for(int i=2;i<=a;i++){ if(cmp(i)&&cmp1(i)){ cout<<i<<endl; } } return 0; }