【文件属性】:
文件名称:求范围内的最大孪生素数
文件大小:755B
文件格式:CPP
更新时间:2017-09-28 04:52:10
最大孪生素数
分离奇数和偶数的优化求法
#include
#include
#include
//is_prime函数用来判断输入的数x是否是素数
int is_prime(int n)
{
if (n <= 1) return 0;
if (n == 2) return 1;
// 所有偶数都不是素数
if (n%2 == 0) return 0;
// 只需要检查奇数
/*
m不必被2~m-1之间的每一个整数去除,只需被2~√m之间的每一个整数去除就可以了。
如果m不能被2~√m间任一整数整除,m必定是素数。
*/
for (int i = 3; i * i <= n; i += 2)
if (n%i == 0) return 0;
return 1;
}
int main()
{
int i, m;
printf("Please input a number:");
scanf("%d", &m);
for(i = m - 2; i >= 3; i--)
{
if(is_prime(i) && is_prime(i+2))
{
printf("最大孪生素数为:%d %d\n", i, i+2);
break;
}
}
system("pause");
return 0;
}