求大于某数的下一个素数;
static int NextPrime (int N) {
if (N % 2 == 0)
++N;
int i;
for (; ; N += 2){
for (i = 3; i*i <= N; i+=2)
if (N % i == 0)
goto ContOuter;
return N;
ContOuter:;
}
}
不使用 goto 语句:
static 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;
}
}