求解大于某数的下一个素数问题,常见于求某一范围内的所有素数,第k个素数问题中,由于素数一定是奇数,而两个相邻奇数之间一定相差2,所以只要在奇数中查找即可:代码如下
int NextPrime (int N) { if (N % 2 == 0) ++N; int i; bool NotPrime = false; for (; ; N += 2){ NotPrime = true; for (i = 3; i*i <= N; i+=2) if (N % i == 0) { NotPrime = true; break; } if (!NotPrime) return N; } }
时间: 2024-11-07 13:48:08