求大于某数的下一个素数;

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;
    }
}

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-11
  • 2021-07-29
  • 2022-01-13
  • 2021-11-20
猜你喜欢
  • 2022-12-23
  • 2021-07-10
  • 2021-05-20
  • 2021-12-13
  • 2021-06-16
相关资源
相似解决方案