#Javaで素数判定
昨日から本格的にJavaの講義を受けていて、do-while文まで学習したあたりで
素数判定プログラムを書いてみることになったので、その備忘録です。
Sosu.java
package sample;
import java.util.Scanner;
public class Sosu {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num;
boolean b = true;
while (true) {
System.out.println("素数判定");
System.out.print("2以上の整数を入力してください:");
num = sc.nextInt();
if (num < 2) {
System.out.println("2未満の整数です。");
} else {
break;
}
}
if (num == 2) {
System.out.println(num + "は素数です。");
} else {
for (int i = 2; i < num; i++) {
if (num % i == 0) {
System.out.println(num + "は素数ではありません。");
b = false;
break;
}
}
if (b) {
System.out.println(num + "は素数です。");
}
}
}
}
#内容
- while文で入力内容が2未満であるものを弾いて再入力させる。
- while文をbreakで脱出し、入力が2以上であるものをif文で判定。
- 入力が2のときは素数。
- 入力が2より大きいときは、2以上num未満の数で順に割っていってどこかで割り切れたら素数ではない。
- 割り切れなかったものは素数。最後の判定はbooleanで判定。
#コメント
正直もっといいやり方はありそうなので、この先学んでいってもし思いついたら訂正します。
また、現在の形のままここをこうした方がいい、などアドバイスがあれば教えてもらえると嬉しいです。