文章目录
题目 B1007 素数对猜想

-
题意
给出一个数字n,在不超过这个范围内数相邻两个素数之间间隔为2的个数并输出。 -
思路
主要就是写一下判断素数的函数,然后在遍历范围的时候为了保证尽量少的判断是否为素数,使判断数为奇数(偶数除2外一定不是素数),然后遍历数数即可。 -
Code in C++
#include <cstdio>
#include <cmath>
bool isPrime(int n)
{
if (n <= 1) return false;
for (int i = 2; i <= std::sqrt(n); ++i)
{
if (n % i == 0) return false;
}
return true;
}
int main()
{
int n, count = 0;
scanf("%d", &n);
for (int i = 3; i + 2 <= n; i+=2)
{
if (isPrime(i) && isPrime(i+2))
{
++count;
}
}
printf("%d", count);
return 0;
}
小结
- 素数的判断
- 扫描范围空间的控制(奇数)
本文探讨了素数对猜想,即在给定范围内寻找相邻素数间隔为2的数量。通过优化的素数判断函数和遍历奇数策略,实现了高效求解。附带C++代码示例。
270

被折叠的 条评论
为什么被折叠?



