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;
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有