輸入包含 1 時,flag 保持 1 被誤判為素數加入求和。0 同理。
if (a[i] <= 1) { flag = 0; } // 1 和 0 非素數
else {
flag = 1;
int limit = (int)sqrt(a[i]);
for (int j = 2; j <= limit; ++j) {
if (a[i] % j == 0) { flag = 0; break; }
}
}
if (flag) sum += a[i];sqrt 避免循環內重複調用。j+=2)。