MENU
👇しうが厳選・おすすめのブログ!
しう
【テニス好きブロガー】 
テニス、読書が好きです。IT企業で学んだこともブログに書いています。高校教諭(テニス部顧問)→IT企業。テニス歴12年。人生をより有意義なものにしたいと思い、ブログを書き始めました。Twitterもしています。
アーカイブ

素数判定プログラムの作り方【元教師がJavaで解説!】

素数判定 プログラム Java

プログラミング初心者におすすめの課題の1つがJavaでの素数判定のプログラムです。素数を判定するためにどのようなロジックが必要で、そのロジックをJavaで書くにはどのような方法があるか。この2つを復習して身につけるのに、Javaで素数判定のプログラムを作ってみましょう。

注意:初めてJavaで素数判定プログラムを作る人は、一度自分なりに考えてから解説を見ることをおすすめします。
自分なりに考えてから、解説を読んだ方がより身につくものが多いからです。

 

PC好きな一郎君

Javaで素数判定のプログラムって、難しそうだね。。。

しう

素数判定プログラムを作るのは、最初は大変かもやけど一緒に頑張っていこ!

 

記事の信頼性:未経験からIT業界の受託会社へ転職に成功。現在は自社開発企業で働いている「しう」がJavaで素数を判定するプログラムについて解説しています。

 

ちなみに、Javaの学習を進めるにあたって、Udemyの講座がおすすめです!

Javaのおすすめ講座まとめも書いたので一度見てみてくださいね。

あわせて読みたい
Udemy Javaのおすすめ講座【初心者向け・6選】 今回はUdemyでJavaの初心者向けにおすすめ講座をまとめました!Udemyでは実際に動画を見ながら環境構築もできるのでおすすめです。ハンズオンで(自分の手を動かしなが...
目次

素数とは

wikipediaによると素数は下記のように定義されています。

素数(そすう、primeあるいはprime number)とは、2 以上の自然数で、正の約数が 1 と自分自身のみであるもののことである。
wikipedia・素数

つまり、1より大きい数字でその数字以外のどんな数字でも割り切れない数字のことです。具体的な例としては次のようになります。

例) 8の場合
 →1以外の数字で(2でも4でも)割り切れる。
 → 素数でない

例) 5の場合
 → 1以外のどんな数字でも割り切ることができない。
 → 素数になる。

 

こんなこと知っていると思う人もいるかもしれませんが、素数がどんな数字かの認識をそろえることは大切なことなので、再度確認しました。

素数を判定するプログラム【Java】

素数判定 プログラム Java

ここから素数をJavaで判定するプログラムについて見ていきます。具体的なコードの例は下記のとおりです。

public class PrimeNumber {
	public static void main(String[] args) {
		//判定用の変数isPrimeNumを用意
		boolean isPrimeNum = true;
		//判定したい数字をnとする
		int n = 8;
        if(n < 2) {
            isPrimeNum = false;
        } else {
    		//nを2からn-1までの全ての数字で割って、一度でも割り切れる数字があれば素数でない(isPrimeNum=false)
	    	for(int i = 2; i < n; i++) {
		    	if(n % i == 0) {
			    	isPrimeNum = false;
				    break;
			    }
            }
		}
		
		//isPrimeNum = trueなら素数、isPrimeNum = falseなら素数でない
		if(isPrimeNum) {
			System.out.println(n +"は素数です");
		}else {
			System.out.println(n +"は素数ではありません");
		}
	}
}

 

このプログラムを実行して、「8は素数ではありません」と表示されれば正解です。今回はn=8で素数の判定をしましたが、nの部分を他の数字に変えても判定できます。今回の例ではネストが多くなり実際の開発現場ではレビューで修正が入ると思いますが、今回は素数の解説のわかりやすさ優先で記載しています。

 

素数判定プログラムで入力した数字を利用したい場合は、こちらの記事が参考になります。

あわせて読みたい
Javaでキーボード入力する方法【元教師がScannerを解説!】 Javaを勉強していると、プログラムの確認をするためにキーボード入力をしたい時があります。 Javaでは、キーボード入力をするプログラムを用意してくれています。   今...

Javaで素数を判定するプログラムの解説

素数判定 プログラム Java

Javaで素数を判定するプログラムの解説をおこなっていきます。素数判定プログラムで大事なポイントは8行目のfor文の処理です。

for(int i = 2; i < n; i++) {
	if(n%i == 0) {
		isPrimeNum = false;
		break;
	}
}

の部分でiが2, 3, 4, 5, 6, 7に変わっていきます。そして、その2~7の数字全てで n (=8) を割れるか試していきます。一度でも割りきれたら、isPrimeNum = false(素数でない)になるため、今回はi = 2の時、8➗2が割り切れるため素数でないという判定がされます。

 

このコードで大切なことは、isPrimeNum=falseの行のすぐ後に
break;
を忘れずに書くことです!

この一行がないと8を i = 2 で割り切れて計算を終えないといけないのにi = 3 の計算に移ってしまいます。最後に、isPrimeNum=trueかisPrimeNum=falseかで素数かどうかの判定をしてあげましょう。

素数判定の練習問題

素数判定 プログラム Java

問題
ある数字と、(ある数字-2)の両方が素数であるかどうか判定せよ。ただしある数字は3以上とする。

例:7と5(=7-2)の両方が素数かどうか判定せよ。

 

素数判定プログラムの問題の答えはこのブログの最後に書いてあります。

まとめ

いかがでしたか?今回は下記の順番で素数判定プログラムの作り方についてご紹介しました。

  • 素数とは
  • 素数を判定するプログラム【Java】
  • Javaで素数を判定するプログラムの解説
  • 素数判定の練習問題【Java】

 

素数判定プログラムのロジックは、特にプログラミング初心者の人にとってプログラミングの勉強に役立ちます。また、他の素数以外の内容も含めてJavaの勉強をするなら、Udemyで動画を見ながらのハンズオンは理解がしやすいです。 興味がある人は下にURLも記載しているので参考にしてみてくださいね。

 

👇 Udemyおすすめ講座【6選】

あわせて読みたい
Udemy Javaのおすすめ講座【初心者向け・6選】 今回はUdemyでJavaの初心者向けにおすすめ講座をまとめました!Udemyでは実際に動画を見ながら環境構築もできるのでおすすめです。ハンズオンで(自分の手を動かしなが...

素数判定の練習問題【答え】

public static void main(String[] args) {
		//判定用の変数isPrimeNum, isPrimeSecondNumを用意
		boolean isPrimeNum = true;
		boolean isPrimeSecondNum = true;
		//判定したい数字をnとする
		int n = 7;

	    //nを2からn-1の全ての数字で割って、一度でも割り切れる数字があれば素数でない(isPrimeNum=false)
	    for(int i = 2; i < n; i++) {
		    if(n%i == 0) {
		    	isPrimeNum = false;
			    break;
		    }
	    }

        if(n - 2 < 2) {
            isPrimeNum = false;
        } else {
    		//(n-2)を2から(n-3)の全ての数字で割って、一度でも割り切れる数字があれば素数でない(isPrimeSecondNum=false)
	    	for(int i = 2; i < n-2; i++) {
		    	if((n-2)%i == 0) {
			    	isPrimeSecondNum = false;
				    break;
			    }
		    }
		}

		//素数かどうかの判定
		if(isPrimeNum && isPrimeSecondNum) {
			System.out.println(n + "と" + (n-2) +"は素数です");
		}else {
			System.out.println(n + "と" + (n-2) + "のどちらかは素数ではありません ");
		}
	}

解答・解説に間違いがあれば、お手数ですが下にあるコメントよりご連絡ください。

 

☟あわせて読みたい 「しう」のオススメブログ

あわせて読みたい
転職ドラフト・体験談【実務経験2年半の場合】 を利用して転職活動をおこない、無事に内定をいただき転職することができたため体験談を残しておきます。エンジニアであればX(旧Twitter)などで目にすることも多いサー...
あわせて読みたい
【独学だけで厳しいと感じたら】無料のプログラミングスクール3選 「しう」はプログラミングの勉強を独学で始めました。 最初はなかなか難しく感じ、配列の利用方法を完ぺきに身につけることさえ、時間がかかりました。   大学のテニス...
あわせて読みたい
【Java初心者向け】必読の書籍・エンジニア志望なら見ておきたい! プログラミング初心者がJavaを勉強するときに、何を見て勉強するでしょうか?   学習サイト、書籍、Youtubeなどの動画。 今の時代、学び方の選択肢はとても多いです。 ...
あわせて読みたい
未経験からのプログラミング学習【20代後半から転職成功にむけて・体験談】 未経験からIT業界への転職を考えてる人は不安に感じる事がありますよね? どのようにプログラミングの学習を進めたらいいのかわからずに、右往左往してしまうこともあり...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

【しう】
Java Engineer| 最近はKotlin| 「テニスとJava(プログラミング)のお悩み解決ラボ」運営者| プログラミング・開発現場の学びを主に発信|【経歴】受託系IT企業➪自社開発企業| ∮保有資格∮ : Java Silver,Oracle SQL Silver,基本情報,TOEIC 750,簿記3級

コメント

コメントする

CAPTCHA


目次