一個產生質數的小程式

單純的把質數印出來,這程式沒問題,如圖:

img

我num設成20,出來的答案是正常的
如圖

img

但是如果我把註解都拿掉,目的是想說把質數都塞到陣列裡面,不管怎麼試都是錯誤,

img

我完全不知道錯在哪裡?
從一開始宣告array就錯了,到底是為什麼?

img

16行前的 int 去掉

质数判断,单独设一个函数:

bool isprime(int n)
{
    if(n<4) return n>1;
    if(n%2==0||n%3==0) return 0;
    for(int i=4;i*i<=n;i++)
        if(n%i==0) return 0;
    return 1;
}