1.5 对称三位数素数
1.5.1 题目内容
判断一个数是否为对称三位数素数。所谓“对称”是指一个数,倒过来还是该数。例如,375 不是对称数,因为倒过来变成了 573。
输入描述:输入数据含有不多于 50 个的正整数(0<n< )。
输出描述:对于每个 n,如果该数是对称三位数素数,则输出“Yes”,否则输出“No”。每个判断结果单独列一行。
输入样例
11 101 272
输出样例
No
Yes
No
1.5.2 提示
素数是指只能被 1 和本身整除的自然数(1 不是素数),前几位素数是 2,3,5,7,11,13,17,19,23,27,29,31。
#include <iostream>
#include <cmath>
using namespace std;
//isPrime 函数用来判断一个数是否是素数
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\n":"No\n");
}
return 0;
}
bool isPrime(int n)
{
//sqrt 开方,需要#include <cmath>
int sqr=sqrt(n*1.0);
for(int i=2;i<=sqr;i++)
{
if(n%i==0)return false;
}
return true;
}