http://kitako.tokyo/lib/JavaExercise.aspx?id=106
こちらのサイトを利用しています
練習問題 6 - 7
ある数が素数かどうかを判定するメソッドを作成しなさい。
このメソッドを使用して 10000 以上 10100 未満の素数をすべて表示するプログラムを作成しなさい。
回答
Java
1public static void main( String[] args ) 2{ 3 for( int n = 10000 ; n < 10100 ; n++ ) 4 if( IsPrimeNumber( n ) ) 5 System.out.print( n + " " ); 6} 7 8static boolean IsPrimeNumber( int num ) 9{ 10 if( num <= 3 ) 11 return true; 12 13 for( int i = 2 ; i <= ( num / 2 ) ; i++ ) 14 if( ( num % i) == 0 ) 15 return false; 16 17 return true; 18}
メソッドの中で回しているfor文の条件式(真ん中のところ)について質問したいです。
iがnumと同じになってしまうとfalseが返されてしまうので
その手前でfor文が終わるようにする必要があると解釈しました。
その場合
Java
1 for( int i = 2 ; i < ( num - 2 ) ; i++ ) 2 if( ( num % i) == 0 ) 3 return false;
まで回す方が間違いなさそうだと思ってしまいます・・・
素数自体どんどん減っていくのでnumの半分くらいまでCHKしたら
絶対素数!と言い切れたりするのでしょうか
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/18 00:45
2019/02/18 00:54
2019/02/18 01:08