问题描述
判断一个数是否为对称且不大于五位数的素数。要求判断对称和判断素数各写一个函数。
输入格式:
测试数据有多组,处理到文件尾。每组测试输入一个正整数n(0 < n < 2^32)。
输出格式:
对于每组测试,若n是不大于五位数的对称素数,则输出“Yes”,否则输出“No”。每个判断结果单独占一行。注意:引号不必输出。
输入样例:
11
101
272
输出样例:
Yes
Yes
No
成品的代码:
#include<iostream>
#include <cmath>
using namespace std;
int sushu(unsigned int n);
int duichen(unsigned int n);
int main()
{
unsigned int n;
while(cin>>n){
if(n<100000 && sushu(n) && duichen(n))
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}
int sushu(unsigned int n)
{
int flg=1,i;
if(n==1)
flg=0;
for(i=2;i<=sqrt(n);i++){
if(n%i == 0){
flg=0;
break;
}
}
return flg;
}
int duichen(unsigned int n)
{
unsigned int temp = n,m=0;
if(n<10)
return 0;
while (temp){
m = m*10+temp%10;
temp/=10;
}
return (m == n);
}