求大于n的最小质数

hash取模运算时选取比较大的质数,就可以有效减少冲突。
有定理,一个数如果不能被2到它的平方根的所有数整除,它就是质数。

/**
 * @description: 求大于n的最小质数
 * @author: michael ming
 * @date: 2019/5/9 22:35
 * @modified by: 
 */
#include <stdio.h>
#include <math.h>
bool IsPrime(size_t n)
{
    size_t Sqt = ceil(sqrt(n));
    if(n == 1)
        return false;
    for(int i=2; i<=Sqt; ++i)
    {
        if(n%i == 0 && n != 2)
            return false;
    }
    return true;
}
int main()
{
    size_t i, j;
    printf("请输入一个数,程序求解大于其的最小质数:");
    scanf("%d", &i);
    j = i;
    while(1)
    {
        i++;
        if(IsPrime(i))
           break;
    }
    printf("大于%zu的最小质数是%zu",j,i);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Michael阿明

如果可以,请点赞留言支持我哦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值