HDU 孪生素数

孪生素数

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值