素数
Time Limit: 1000MS
Memory Limit: 65536KB
Submit Statistic Discuss
Problem Description
质数又称素数,是指一个大于1 的自然数,除了1和此整数自身外,不能被其他自然数整除的数。对于一个给定的十进制整数,如果这个数是素数且它逆置后的整数也为素数,那么输出“True”,否则输出“False”
Input
输入包含多组测试数据。
每组数据只有一行为 1 个整数 n( |n| < 10000)。
输入 0 代表输入的结束,该组数据不做处理。
Output
对于每组测试数据,按照题目描述输出对应的结果。
Example Input
13 41 1 -3 0
Example Output
True False False False
Hint
注意题目数据范围及素数的定义。
Author
qinchuan
在程序中写了两个函数f()为判断素数的函数,f1()为把整数n逆置
#include<stdio.h>
#include<math.h>
int main()
{int f(int);int f1(int);int n;while(scanf("%d",&n)!=EOF&&n!=0){if(f(n)==1&&f(f1(n))==1)printf("True\n");elseprintf("False\n"); //printf("%d\n",f1(n)); }return 0;
}
int f(int k)
{int i,sk;sk=(int)sqrt(k);for(i=2;i<=sk;i++)if(k%i==0)break;if(i>sk&&k>=2)return 1;return 0;
}
int f1(int k)
{int i,j=0,s=0;int b[10];while(k!=0){b[j++]=k%10;k/=10;}for(i=0;i<j;i++){s+=b[i]*pow(10,j-i-1);}return s;
}