当前位置: 代码迷 >> 综合 >> 山东理工ACM 1445 素数
  详细解决方案

山东理工ACM 1445 素数

热度:48   发布时间:2023-11-25 14:36:42.0

素数

Time Limit: 1000MS  Memory Limit: 65536KB
Submit Statistic Discuss

Problem Description

质数又称素数,是指一个大于的自然数,除了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;
}


  相关解决方案