题目内容:判断一个数是否为对称三位数素数。所谓“对称”是指一个数,倒过来还是该数。例如,375不是对称数,因为倒过来变成了573。
输入描述:输入数据含有不多于50个的正整数(0<n<232)。
输出描述:对于每个n,如果该数是对称三位数素数,则输出“Yes”,否则输出“No”。每个判断结果单独列一行。
题目分析:素数是指只能被1和本身整除的自然数(1不是素数),前几位素数是2,3,5,7,11,13,17,19,23,27,29,31。
参考代码:
#include <iostream> #include <fstream> #include <cmath> using namespace std; bool isPrime(int); int main(int argc,char * argv[]) { int n; while(cin>>n) { cout<<(n>100&&n<1000&&n/100==n%10&&isPrime(n)?"Yes ":"No "); } system("pause"); return 0; } bool isPrime(int n) { int sqr=sqrt(n*1.0); for(int i=2;i<=sqr;i++) { if(n%i==0) return false; } return true; }
效果如图: