引き続きサンプルプログラムです。
今回は素数かどうかを判定するプログラムを作成してみたいと思います。
■素数とは
まず素数とは「約数が2つの自然数」です。
たとえばnが素数の場合、nの約数は「1」と「n」の2つとなります。
一桁の数だと、2,3,5,7が素数です。
■Practice_01.java
import java.util.Scanner;
public class Practice_03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("素数かどうか判定します");
System.out.print("数字を入力して下さい : ");
int n = sc.nextInt();
for(int i = 2; i < n; i++) {
if(n % i == 0) {
System.out.println(n + " は素数ではありません");
return;
}
}
System.out.println(n + " は素数です");
}
}
■実行結果
■解説
ポイントはfor文です。
入力した数を1つ1つの数で割ってみます。
- 割り切れたら「素数ではない」
- 割り切れなかったら「素数です」
と判定します。
これを、2からn-1の間繰り返します。
1とnは割り切れてしまうので、割る数に含めません。
割り切れた場合は「素数ではありません」と表示し、returnによって割り切れた時点でメソッドを終了します。
割り切れなかった場合はfor文を抜け、「素数です」と表示してプログラム終了となります。
■まとめ
nが素数かどうか判定するには、for文で1つ1つの数で割っていくことで可能となります。
ただし、割る数は2からn-1までの数となります。
素数判定は処理を早くする方法がいくつか存在しますが、今回は最も基本的なものをご紹介しました。
