Javaでn以上の最小の素数を1つ出力するプログラムを書きたいです。
キーボードで入力した任意の整数n以上の数の中で、最小の素数を1つだけ出力したいです
Googleでいろいろ調べたのですが、「n以上の最大の素数を出力する」ものに近い例を見つけられませんでした。
もし参考になるサイトなどがあれば教えていただきたいです。
(素数判定のプログラムも使用します)
該当のソースコード
Java
1 static boolean isprime(int n) {//素数判定 2 if (n >= 2) { 3 for(int a = 2; a * a <= n; a++) { 4 if(n % a == 0) return false; 5 } 6 return true; 7 } 8 return false; 9 } 10 11 public static void main(String[] args) { 12 Scanner sc = new Scanner(System.in); 13 if (cmd.contains("isprime")) { 14 int n = sc.nextInt(); 15 isprime(n); 16 if (true == isprime(n) ) { 17 System.out.println("Yes"); 18 }else { 19 System.out.println("No"); 20 } 21 } 22 }
試したこと
上記したソースコードは作成した素数判定のプログラムです。
この関数を利用して新たなプログラム
Java
1static boolean primethan(int n){ 2}
またmain内に
Java
1else if(cmd.contentEquals("primethan"){ 2n = sc.nextInt(); 3System.out.println(); 4}
を追加すると予想しました。
しかし、中に記述すべきことがわかりません。
>> n以上の最大の素数を出力する
ではなくて、「n以下の」では?
もし仮にn 以上だとして、上限はいくらまででしょうか。
素数はやろうと思えば無限大にあるとおもいます。
なので下限と上限を設けるべきかと思います。
n以上で最小の素数です
例えばn = 6 なら出力したい数値は7となります
ああ、そっちですか。
それでも上限が曖昧過ぎますよ。
すべての素数はわかりませんが、常に間隔が10の間に素数が一つは出てくる...とは限りませんから、
やはり上限が必要です。
上限いらないですよ。
最大の素数が存在しないことは証明されているから、n以上の素数は確実に存在します。
まあ、intやlongの範囲に収まるかは別問題ですが。
回答1件
あなたの回答
tips
プレビュー