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