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

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

素数判定 プログラム Java

プログラミング初心者におすすめの課題の1つがJavaでの素数判定のプログラムです。

 

素数を判定するためにどのようなロジックが必要か。

また、そのロジックをJavaで書くにはどのような方法があるか。

 

この2つを復習して身につけるのに、Javaで素数判定のプログラムを作ってみましょう。

 

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

 

PC好きな一郎君

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

しう

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

 

記事の信頼性:未経験からIT業界の受託会社へ転職に成功。高校教諭から転職後もJavaの勉強を続けている「しう」がJavaで素数を判定するプログラムをわかりやすく伝えています。

 

 

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

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

プログラミング(Java)のお悩み解決...
Udemy Javaのおすすめ講座【初心者向け・6選】 | プログラミング(Java)のお悩み解決ラボ! 今回はUdemyでJavaの初心者向けにおすすめ講座をまとめました!Udemyでは実際に動画を見ながら環境構築もできるのでおすすめです。ハンズオンで(自分の手を動かしながら)...
目次

素数とは

素数判定 プログラム Java

素数の定義は、「1と自分自身以外に約数を持たない数」のことです。

 

この説明だと少し、わかりにくいですね。

1より大きい数字で、その数字以外のどんな数字でも割り切れない数字のことです。

 

PC好きな一郎君

???

しう

具体例を見ていこか!

 

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

 

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

 

こんなこと知っていると思う人もいるかもしれません。

しかし、素数がどんな数字かの認識をそろえることは大切なことなので、再度確認しました。

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

素数判定 プログラム Java

では、いよいよ素数をJavaで判定するプログラムを見ていきましょう。

 

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

 

このプログラムを実行して、「8は素数ではありません」と表示されれば正解です。

今回はn=8で素数の判定をしましたが、他の数字に変えても判定できます。

 

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

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

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

素数判定 プログラム Java

Javaで素数を判定するプログラムの解説をおこなっていきます。

 

素数判定プログラムで大事なポイントは8行目のfor文の処理です。

 

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

の部分でiが2, 3, 4, 5, 6, 7に変わっていきます。

 

そして、その2~7の数字で毎回n(=8)を割れるか試していきます。

一度でも割りきれたら、judge=false(素数でない)になります。

 

この時、大切なことは、judge=falseの行のすぐ後に
break;
を書くことです!

 

この一行がないと8を i = 2 で割り切れて、計算を終えないといけないのに

i = 3 の計算に移ってしまいます。

 

最後に、judge=trueかjudge=falseかで素数かどうかの判定をしてあげましょう。

素数判定の練習問題

素数判定 プログラム Java

問題
ある数字と、(ある数字-2)の両方が素数であるかどうか判定せよ。

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

 

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

まとめ

いかがでしたか?

 

今回は

 

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

の順でご紹介しました。

 

素数判定プログラムのロジックは、プログラミングの勉強に役に立ちます。

 

また、Javaの勉強を進めるなら、UdemyはJavaを理解するスピードを上げてくれます。

 

👇 Udemyおすすめ講座【厳選済み】

プログラミング(Java)のお悩み解決...
Udemy Javaのおすすめ講座【初心者向け・6選】 | プログラミング(Java)のお悩み解決ラボ! 今回はUdemyでJavaの初心者向けにおすすめ講座をまとめました!Udemyでは実際に動画を見ながら環境構築もできるのでおすすめです。ハンズオンで(自分の手を動かしながら)...

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

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

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

 

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

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

この記事を書いた人

【しう】
Java Engineer| 「テニスとJava(プログラミング)のお悩み解決ラボ」運営者| プログラミングとテニス、開発現場の学びを発信|【経歴】関関同立➪高校教師➪受託系IT企業| 開発現場でSEとPGの下積み中| ∮保有資格∮ : Java Silver,基本情報

コメント

コメントする

CAPTCHA


目次