素数判定(HDU2012)

分析:只能被 1和它本身整除的整数称为素数。在数学中,要判断n是否为素数,通常让n除以2~\sqrt{n}的每一个整数,如果, 能被 2~\sqrt{n}的某个整数整除,则说明,不是素数,否则n一定是素数

说白了就是如果在数学中只要这个数字可以被2~根号n摸一下等于零,他就不是素数

这题运用了宏定义一个函数,这需要结合题目去理解,最后的if(i》y)用的非常巧妙

#include<stdio.h>
#include<math.h>
#define function(n) n*n+n+41
int judge(int q)
{
    if(q%2==0)
    {
        return 1;
    }
    int temp = sqrt(q),i;
    for(i=3;i<=temp;i+=2)
    {
        if(q % temp == 0)
        {
           break;
        }
    }
    return i>temp?0:1;
}
int main()
{

    int x,y,i;
    while(~scanf("%d%d",&x,&y))
    {
        if(x<y)
        {
            break;
        }
        for( i = x;i<=y;i++)
        {
            if(judge(function(i)))
            {
            break;
            }
        }
    }
    if(i>y)
    {
        printf("OK\n");
    }
    else printf("SORRY\n");

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值