続・とってもわかりやすいJAVA 【サンプルプログラム3 素数判定】

この記事は2015年12月28日に書かれたものです。内容が古い可能性がありますのでご注意ください。


引き続きサンプルプログラムです。

今回は素数かどうかを判定するプログラムを作成してみたいと思います。

 

素数とは

まず素数とは「約数が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 + " は素数です");
    }
}

実行結果

Practice_03_01

 

解説

ポイントはfor文です。
入力した数を1つ1つの数で割ってみます。

  • 割り切れたら「素数ではない」
  • 割り切れなかったら「素数です」

と判定します。

これを、2からn-1の間繰り返します。
1とnは割り切れてしまうので、割る数に含めません。

割り切れた場合は「素数ではありません」と表示し、returnによって割り切れた時点でメソッドを終了します。
割り切れなかった場合はfor文を抜け、「素数です」と表示してプログラム終了となります。

まとめ

nが素数かどうか判定するには、for文で1つ1つの数で割っていくことで可能となります。
ただし、割る数は2からn-1までの数となります。
素数判定は処理を早くする方法がいくつか存在しますが、今回は最も基本的なものをご紹介しました。

  • このエントリーをはてなブックマークに追加

PAGE TOP