ページ 1 / 1
独習Cの練習問題_3_6_1の正答の18行目の理解について
Posted: 2012年12月20日(木) 16:55
by パクパク
練習問題3_6_1
2~1000までの素数を全て表示する。
以下のコードの18行目にあるif(!(num % i))が理解出来ずにいます。余りがあるのか、無いのか、混乱しています。どのように理解したらよいでしょうか。ご教授お願い致します。
コード:
#include <stdio.h>
int main(void)
{
int num, i, prime;
printf("2~1000までの素数を全て表示する。\n");
for(num = 2; num < 1001; num++){
prime = 1;
//約数を調べる
for(i = 2; i <= (num / 2); i++)
if(!(num % i))
prime = 0;
if(prime)
printf("%d は素数です。\n" , num);
}
return 0;
}
Re: 独習Cの練習問題_3_6_1の正答の18行目の理解について
Posted: 2012年12月20日(木) 17:03
by box
と同じ意味です。つまり「割り切れたら」ということです。
ていうか、この前の質問に対する回答において私が書いたサンプルコードで、もともとは
となっていた箇所を、私が
と書き換えていたことに気づいていれば、今回の質問はなかったはずです。
# 独習Cのサンプルコードって何だか一癖あるような気がします。
「2~1000」を表現するならば、素直に
コード:
if (num = 2; num <= 1000; num++)
と書けばいいものを。同じ意味とはいえ、わざわざ「1001未満」と書く必要はなかろう、と。
Re: 独習Cの練習問題_3_6_1の正答の18行目の理解について
Posted: 2012年12月20日(木) 17:10
by パクパク
返信ありがとうございます。
申し訳ありません。同じ質問を二度したようなものですね。
次回から精読するように心がけます。
ご教授感謝致します。
Re: 独習Cの練習問題_3_6_1の正答の18行目の理解について
Posted: 2012年12月20日(木) 17:13
by パクパク
上記のように言っておいて解決しておりませんでした。