C言語なら俺に聞け! Part 112
■ このスレッドは過去ログ倉庫に格納されています
0368365
2005/08/16(火) 14:14:47>if ( is_prime[ i ] ) の括弧の中がis_prime[ i ] !=0とかとなっていないのがわからないです。
if 文は 真/偽 を判断する、と考えてるとそういう思考に陥ります。
まず定義として if 文は、条件として与えるものは整数で、「0 か否か」を「偽 or 真」として判断します。
そして、!= とか == などの演算子は、0 かそれ以外の値をとる整数値になります。
よって、 たとえば (12 == 13) という条件文は「偽」ではなく 0 という "整数" をとります。
>そのときに2が変数でカウントアップしていかないと常に2の倍数になってしまうと思う
2が変数ってどういうことでしょうか?
for( j = i*2; j <= N; j += i )
i*2 は最初の j の値で、二週目以降 i ずつ増えます。
つまり、i*2、i*2+i、i*2+i+i、…となるわけで、i*2 i*3 i*4…となるわけです。
■ このスレッドは過去ログ倉庫に格納されています