您的位置:首页 > 编程语言 > C语言/C++

1026_5位以内的对称素数

2016-04-10 20:03 302 查看

五位以内的对称素数

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte

总提交 : 2417            测试通过 : 536 


比赛描述
判断一个数是否为对称且不大于五位数的素数。

输入

输入数据含有不多于50个的正整数(0<n<2^32)。

输出

对于每个n,如果该数是不大于五位数的对称素数,则输出“Yes”,否则输出“No”。每个判断结果单独列一行。

样例输入

11 101 272

样例输出

Yes

Yes

No

题目来源

ZJUT

代码如下:
#include <iostream>
using namespace std;

bool isDuichen(int n);//判断是否对称
bool isSushu(int n);//判断是否素数
int strn[5];

int main()
{
int n;
while (cin >> n)
{
if (isDuichen(n) && isSushu(n))
cout << "Yes" << endl;
else
cout << "No" << endl;
}
return 0;
}

bool isDuichen(int n)
{
int t = 0;
while (n)
{
strn[t++] = n % 10;
n /= 10;
}
for (int i = 0; i < t / 2; i++)
{
if (strn[i] != strn[t - i - 1])
return false;
}
return true;
}

bool isSushu(int n)
{
if (n == 1)
return false;
int i;
for (i = 2; i*i <= n; i++)
{
if (n%i == 0)
return false;
}
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息