1445素数
来源:互联网 发布:阿里云虚拟主机管理 编辑:程序博客网 时间:2024/05/29 11:25
题目描述
质数又称素数,是指一个大于1 的自然数,除了1和此整数自身外,不能被其他自然数整除的数。对于一个给定的十进制整数,如果这个数是素数且它逆置后的整数也为素数,那么输出“True”,否则输出“False”
输入
输入包含多组测试数据。
每组数据只有一行为 1 个整数 n( |n| < 10000)。
输入 0 代表输入的结束,该组数据不做处理。
输出
对于每组测试数据,按照题目描述输出对应的结果。
示例输入
13411-30
示例输出
TrueFalseFalseFalse
提示
#include<stdio.h>
int main()
{
int t,m,i,n,a,b,c,d,s;
while(scanf("%d",&m)&&m)
{
if(m<=1)
printf("False\n");
else
{
n=1;
for(i=2;i<m/2;i++)
{
if(m%i==0)
n=0;
}
if(n==1)
{
t=1;
if(m<=10)
{
for(i=2;i<=m/2;i++)
if(m%i==0)
{t=0;break;}
}
else if(m>=10&&m<=100)
{
a=m%10;b=m/10%10;
s=a*10+b;
for(i=2;i<=s/2;i++)
if(s%i==0)
{t=0;break;}
}
else if(m>=100&&m<=1000)
{
a=m%10;b=m/10%10;c=m/100%10;
s=a*100+b*10+c;
for(i=2;i<=s/2;i++)
if(s%i==0)
{t=0;break;}
}
else if(m>=1000&&m<=10000)
{
a=m%10;b=m/10%10;c=m/100%10;d=m/1000%10;
s=a*1000+b*100+c*10+d;
for(i=2;i<=s/2;i++)
if(s%i==0)
{t=0;break;}
}
}
if(t==1&&n==1)
printf("True\n");
else
printf("False\n");
}
}
return 0;
}
int main()
{
int t,m,i,n,a,b,c,d,s;
while(scanf("%d",&m)&&m)
{
if(m<=1)
printf("False\n");
else
{
n=1;
for(i=2;i<m/2;i++)
{
if(m%i==0)
n=0;
}
if(n==1)
{
t=1;
if(m<=10)
{
for(i=2;i<=m/2;i++)
if(m%i==0)
{t=0;break;}
}
else if(m>=10&&m<=100)
{
a=m%10;b=m/10%10;
s=a*10+b;
for(i=2;i<=s/2;i++)
if(s%i==0)
{t=0;break;}
}
else if(m>=100&&m<=1000)
{
a=m%10;b=m/10%10;c=m/100%10;
s=a*100+b*10+c;
for(i=2;i<=s/2;i++)
if(s%i==0)
{t=0;break;}
}
else if(m>=1000&&m<=10000)
{
a=m%10;b=m/10%10;c=m/100%10;d=m/1000%10;
s=a*1000+b*100+c*10+d;
for(i=2;i<=s/2;i++)
if(s%i==0)
{t=0;break;}
}
}
if(t==1&&n==1)
printf("True\n");
else
printf("False\n");
}
}
return 0;
}
0 0