2~10(2と10を含む)の間の素数を出力するプログラムですが、この記述以外ではどのようなプログラムになりますでしょうか。スキル向上のため、様々な意見を聞きたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
うーん・・・
2~10までの素数ですと2,3,5,7なわけですが、ご質問のコードは判定はあるもののそれは素数の判定というよりは2,3,5,7という数列を表示するための特化論理にしか見えません。
つまり今の論理は2~10という限定的な条件に依存しすぎていて「それがよいとかわるいとか」コメントできるものには思えません。
2~10ではなくて2より大きな任意のnに対して2~nまでの素数を表示するプログラムを書いてみてはいかがでしょうか?多分その方があなたのスキル向上に役立つと思います。
投稿2019/01/30 12:15
総合スコア18404
0
java 素数
で google 検索をしてみてください。
たくさんのプログラム例をみつけることができます。
追記
質問文のコードは、 ”素数”の定義がプログラムに反映されていません。
追記
検索してみたものから、いくつかを紹介します。
- n番目の素数を求める処理が重い
https://teratail.com/questions/140764
- 素数判定のプログラム例(Java版)
https://edu.clipper.co.jp/pg-3-30.html
- Prime numbers with Java8 Stream API
https://gist.github.com/greymd/19ed7f18c0eba7e703ac2a6b69225ca8
- 最小限のJavaで素数を列挙(Javaで無限リスト)
投稿2019/01/30 12:34
編集2019/01/30 15:03総合スコア22326
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
2~10(2と10を含む)の間の素数を出力するプログラムですが、
.2~10
だと範囲があまりにも狭いのでスキル向上のためならば,
(1)自然数n
を入力しn
以下の素数を列挙する
(2)自然数n
を入力してその自然数が素数かどうか判定する.
などをした方が,応用性や拡張性の面で役に立つと思います.
例えば,以下のように書くことができます.
コード自体は(1)ですが,メソッドis_prime
は(2)をカバーしています.
java
1import java.util.*; 2 3public class Main { 4 public static void main(String[] args) throws Exception { 5 6 Scanner sc = new Scanner(System.in); 7 int n = Integer.parseInt(sc.nextLine()); 8 9 for(int i = 2; i <= n; i++){ 10 if(is_prime(i)){ 11 System.out.println(i); 12 } 13 } 14 } 15 public static boolean is_prime(int n) 16 { 17 for(int i = 2; i <= Math.sqrt(n); i++){ 18 if(n % i == 0){ 19 return false; 20 } 21 } 22 return true; 23 } 24}
投稿2019/01/30 12:36
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/01/30 12:37
0
Javaなど不要。そう、シェル芸ならね!
bash
1$ seq 2 10|xargs factor|awk '$0*=!$3' 22 33 45 57
投稿2019/01/30 12:59
編集2019/01/30 13:07総合スコア5739
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。