下列 C 語言程式片段印出的數值為何? for(i = 2; i < 100; i++) { flag = 1; for(j = 2; j <= i/2; j++){ if(i % j == 0){ flag = 0; break; } } if(flag == 1) { printf("%d\n", i); } }
A2 至 99 中所有的奇數
B2 至 99 中所有的偶數
C2 至 99 中所有的質數正確答案
D2 至 99 中所有的合數(非質數)
答案與詳解
內層從 j=2 試到 i/2,只要有任何 j 整除 i 就設 flag=0 並 break;若都無法整除代表 i 沒有 1 和自身以外的因數,即為質數。這是教科書標準的質數判斷寫法。
