孪生素数
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 37 Accepted Submission(s) : 6
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
相差为2的素数称为孪生素数,求出指定区间上所有的孪生素数
Input
输入以EOF作为结束标志,输入a,b(0<a,b<10000)代表区间的两个端点,区间是闭区间
Output
输出这个区间内所有孪生素数对,如果该区间内没有孪生素数对就输出-1.样例之间和最后输出一个空行
Sample Input
3 7
10 11
Sample Output
(3,5)
(5,7)
-1
Author
kuaichenyang
解题思路:对质数的考察
code(c)
#include<stdio.h>
#include<math.h>
int isPrime(int num){
int m;
if(num==1) return 0;
if(num==2) return 1;
for(m=2;m<(int)sqrt((double)num);m++){
if(num%m==0)
break;
}
if(num%m==0)
return 0;
else
return 1;
}
int main()
{
int a,b;
int i,flag=0;
while(scanf("%d%d",&a,&b) != EOF)
{
flag=1;
for(i=a;i<=b;i++)
{
if(isPrime(i)&&isPrime(i+2))
{
flag=0;
printf("(%d,%d)\n",i,i+2);
}
}
if(flag)
printf("-1");
}
return 0;
}
本文介绍了一种求解指定区间内所有孪生素数对的算法,并提供了完整的C语言实现代码。通过判断素数的方法来找出相差为2的素数对,即孪生素数。输入区间的两个端点,输出该区间内的所有孪生素数对。
725

被折叠的 条评论
为什么被折叠?



