将伪代码转换为C ++时的无限循环

时间:2015-01-22 22:56:26

标签: c++ terminal infinite-loop pseudocode

我在将伪代码转换为C ++时遇到了麻烦,因为当我运行程序时,我似乎被困在一个无限循环中。

这是函数的伪代码:

kN ← n*200 
c ← 0
for i from 2 to kN
    f ← false
    j←2
    while (j < p and not(f))
       if (i%p = 0) 
          f ← true
       p ← p + 1 
    done
    if (not f) 
       print i
       c ← c + 1 
    end if
end for
print c 
return c

这是我的尝试:

int primes(int n){

int kN = (n*200);
int c = 0;

    for (int i = 2; i < kN; i++){
        bool f = false;
        int j = 2;
        while (p < i && f == false){
            if (i % p == 0) {
                f = true;
            p++;
            }
        }
        if (f == true) {
        c << i;
        c++;
        }
    }
cout << c;
return c;
}

1 个答案:

答案 0 :(得分:1)

    if (i % p == 0) {
        hasfactor = true;
    p++;
    }

应该是

    if (i % p == 0) {
        hasfactor = true;
    }
    p++;