素数
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
质数又称素数,是指一个大于1 的自然数,除了1和此整数自身外,不能被其他自然数整除的数。对于一个给定的十进制整数,如果这个数是素数且它逆置后的整数也为素数,那么输出“True”,否则输出“False”
输入
输入包含多组测试数据。
每组数据只有一行为 1 个整数 n( |n| < 10000)。
输入 0 代表输入的结束,该组数据不做处理。
输出
对于每组测试数据,按照题目描述输出对应的结果。
示例输入
13 41 1 -3 0
示例输出
True False False False
代码如下:
#include<stdio.h>
int nizhi(int p);int sushu(int q);
int main()
{
int n, x, y, m;
while(scanf("%d", &n)!=EOF)
{
if(n == 0) break;
else if(n < 0)
printf("False\n");
else if(n == 1)
printf("False\n");
else
{
x = sushu(n);
m = nizhi(n);
y = sushu(m);
if(x == 1 && y == 1)
printf("True\n");
else
printf("False\n");
}
}
return 0;
}
int sushu(int p)
{
int i, x = 1;
for(i = 2; i < p; i++)
{
if(p % i == 0)
{
x = 0;
break;
}
}
return x;
}
int nizhi(int q)
{
int s = 0, a;
do
{
a = q % 10;
s = s * 10 + a;
q = q / 10;
}
while(q > 0);
return s;
}