カテゴリ: Kotlin 更新日: 2026/05/12

Kotlinで素数判定アルゴリズムを実装する方法を完全解説!初心者でも理解できる数学アルゴリズム入門

Kotlinで素数判定アルゴリズムを実装する手順
Kotlinで素数判定アルゴリズムを実装する手順

先生と生徒の会話形式で理解しよう

生徒

「Kotlinで素数って調べることができるんですか?」

先生

「もちろんできます。Kotlinでは数学アルゴリズムを使って、ある数字が素数かどうかを簡単に判定できます。」

生徒

「そもそも素数って何でしたっけ?」

先生

「素数とは、1とその数自身でしか割ることができない整数のことです。例えば2、3、5、7などが素数です。」

生徒

「なるほど。じゃあKotlinでどうやって素数かどうか調べるんですか?」

先生

「それでは、Kotlinでの素数判定アルゴリズムの基本から順番に見ていきましょう。」

1. 素数とは何かを理解しよう

1. 素数とは何かを理解しよう
1. 素数とは何かを理解しよう

素数とは、数学でとても重要な数の種類の一つです。素数とは「1とその数自身だけで割り切れる整数」のことを指します。

例えば次のような数字があります。

  • 2
  • 3
  • 5
  • 7
  • 11

これらはすべて素数です。なぜなら、他の数字では割り切れないからです。

一方で、次のような数字は素数ではありません。

  • 4(2で割れる)
  • 6(2や3で割れる)
  • 8(2で割れる)

このように、素数は割り算を使って判定することができます。プログラミングではこの仕組みを利用して「素数判定アルゴリズム」を作ります。

アルゴリズムとは、問題を解決するための手順や計算方法のことです。Kotlinの数学アルゴリズムとしてもよく登場するテーマです。

2. 一番シンプルな素数判定の考え方

2. 一番シンプルな素数判定の考え方
2. 一番シンプルな素数判定の考え方

最もシンプルな素数判定方法は「2からその数の一つ前までの数字で割ってみる」という方法です。

例えば数字が7だった場合を考えてみます。

  • 7 ÷ 2
  • 7 ÷ 3
  • 7 ÷ 4
  • 7 ÷ 5
  • 7 ÷ 6

このどれも割り切れないので、7は素数と判定できます。

この考え方をKotlinプログラムにすると次のようになります。


fun main() {

    val number = 7
    var isPrime = true

    for (i in 2 until number) {
        if (number % i == 0) {
            isPrime = false
        }
    }

    if (isPrime) {
        println("素数です")
    } else {
        println("素数ではありません")
    }

}

ここで使われている「%」は余りを求める演算子です。割り算したときに余りが0になる場合、その数で割り切れるという意味になります。

3. 関数を作って素数判定を再利用する

3. 関数を作って素数判定を再利用する
3. 関数を作って素数判定を再利用する

プログラムでは、同じ処理を何度も使うことがあります。そのときに便利なのが「関数」です。

関数とは、特定の処理をまとめて名前をつけたものです。Kotlinではfunというキーワードで関数を作ります。

素数判定を関数にすると次のようになります。


fun isPrime(n: Int): Boolean {

    if (n <= 1) return false

    for (i in 2 until n) {
        if (n % i == 0) {
            return false
        }
    }

    return true
}

fun main() {

    val num = 11

    if (isPrime(num)) {
        println("素数です")
    } else {
        println("素数ではありません")
    }

}

このように関数を作ることで、素数判定のロジックを何度でも使えるようになります。Kotlinのプログラム設計ではとても重要な書き方です。

4. 計算を速くする平方根アルゴリズム

4. 計算を速くする平方根アルゴリズム
4. 計算を速くする平方根アルゴリズム

先ほどの方法はシンプルですが、大きな数字になると計算回数が増えてしまいます。

そこでよく使われるのが「平方根まで調べれば良い」という数学アルゴリズムです。

平方根とは、ある数を二回掛けて元の数になる値のことです。例えば9の平方根は3です。

素数判定では、実は数字の平方根まで調べれば十分だという性質があります。

KotlinではMath.sqrtを使って平方根を求めることができます。


import kotlin.math.sqrt

fun isPrime(number: Int): Boolean {

    if (number <= 1) return false

    val limit = sqrt(number.toDouble()).toInt()

    for (i in 2..limit) {
        if (number % i == 0) {
            return false
        }
    }

    return true
}

fun main() {
    println(isPrime(29))
}

この方法を使うと、計算回数が大きく減るのでプログラムの処理速度が向上します。アルゴリズムの改善としてよく紹介されるテクニックです。

5. Kotlinで複数の素数を探すプログラム

5. Kotlinで複数の素数を探すプログラム
5. Kotlinで複数の素数を探すプログラム

次に、1から100までの数字の中で素数をすべて探すプログラムを書いてみます。

このような処理は、数学学習やプログラミング学習でもよく登場します。


fun isPrime(n: Int): Boolean {

    if (n <= 1) return false

    for (i in 2 until n) {
        if (n % i == 0) return false
    }

    return true
}

fun main() {

    for (i in 1..100) {
        if (isPrime(i)) {
            println(i)
        }
    }

}

このプログラムを実行すると、1から100までの素数がすべて表示されます。


2
3
5
7
11
13
17
19
...

このようなプログラムは、アルゴリズム学習やプログラミング練習問題としてとても有名です。

6. 素数判定アルゴリズムが使われる場面

6. 素数判定アルゴリズムが使われる場面
6. 素数判定アルゴリズムが使われる場面

素数判定アルゴリズムは、単なる数学問題だけではなく、実際のコンピュータ技術でも利用されています。

特に有名なのが暗号技術です。インターネットの通信を安全にする暗号方式では、巨大な素数が使われています。

また、次のような分野でも素数が活用されています。

  • 暗号技術
  • セキュリティアルゴリズム
  • 数学研究
  • プログラミング教育

このように、Kotlinで素数判定アルゴリズムを学ぶことは、プログラミングの基礎力だけでなく数学的思考のトレーニングにもなります。

7. Kotlinで数学アルゴリズムを学ぶメリット

7. Kotlinで数学アルゴリズムを学ぶメリット
7. Kotlinで数学アルゴリズムを学ぶメリット

Kotlinは読みやすい文法を持つプログラミング言語で、初心者にも学びやすい特徴があります。

そのため、数学アルゴリズムの学習にもとても向いています。

例えば今回紹介した素数判定アルゴリズムでは、次のようなプログラミングの基本が自然に身につきます。

  • for文による繰り返し処理
  • if文による条件分岐
  • 関数の作り方
  • 数学演算子の使い方

これらはKotlinだけでなく、JavaやPythonなど他のプログラミング言語でも共通して使われる基本知識です。

そのため、素数判定アルゴリズムはプログラミング初心者の学習テーマとしてとても人気があります。

Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。

基礎からわかるKotlinをAmazonで見る

※ Amazon広告リンク

まとめ

まとめ
まとめ

Kotlinによる素数判定アルゴリズムの理解を振り返ろう

ここまで、Kotlinを使った素数判定アルゴリズムの基本から応用までを順番に学んできました。素数とは一とその数自身だけで割り切れる整数のことであり、数学の世界ではとても重要な概念として知られています。プログラミングの世界でも素数判定アルゴリズムは頻繁に登場し、アルゴリズム学習やプログラミング学習の入門テーマとして広く利用されています。

Kotlinは文法がシンプルで読みやすく、数学アルゴリズムを実装する際にもとても理解しやすいプログラミング言語です。今回の記事では、Kotlinの基本文法を活用しながら素数判定アルゴリズムを段階的に理解できるように解説しました。

まず最初に学んだのは、素数の定義です。素数は一とその数自身だけで割り切れる整数であり、二、三、五、七などが代表的な例として知られています。プログラムでは割り算の余りを使って、ある数が他の数で割り切れるかどうかを判定することで素数かどうかを判断できます。

Kotlinでは余りを求める演算子としてパーセント記号を使用します。この演算子を利用することで、ある数を別の数で割ったときの余りを調べることができます。余りが〇になる場合、その数は割り切れるという意味になります。この仕組みを利用することで、素数判定アルゴリズムを作ることができます。

次に紹介したのは、二から対象の数の一つ前までの整数で割ってみるというシンプルな素数判定アルゴリズムです。この方法は理解しやすく、プログラミング初心者でもすぐに実装できるのが特徴です。ただし、数が大きくなると計算回数が増えてしまうという課題があります。

そこでアルゴリズムの改善として登場するのが平方根まで調べればよいという数学的な性質です。ある整数が合成数である場合、その約数の組み合わせは必ず平方根以下の数に存在します。この性質を利用すると、調べる範囲を大幅に減らすことができ、プログラムの処理速度を向上させることができます。

Kotlinでは平方根を求めるために数学ライブラリの関数を利用することができます。これによって効率的な素数判定アルゴリズムを実装することが可能になります。アルゴリズムの効率化はソフトウェア開発において非常に重要な考え方であり、プログラミング学習の早い段階で理解しておくと大きな強みになります。

Kotlinで素数判定アルゴリズムを実装するサンプルプログラム

最後に、Kotlinを使って素数判定アルゴリズムをまとめて実装したサンプルプログラムを確認しておきましょう。このプログラムでは関数を利用して素数判定の処理を作り、一から百までの整数の中から素数を見つけて表示します。


fun isPrime(number: Int): Boolean {

    if (number <= 1) {
        return false
    }

    for (i in 2 until number) {
        if (number % i == 0) {
            return false
        }
    }

    return true
}

fun main() {

    for (i in 1..100) {

        if (isPrime(i)) {
            println(i)
        }

    }

}

このプログラムではisPrimeという関数を作成し、整数が素数かどうかを判定しています。関数を作ることで同じ処理を何度でも再利用できるようになり、プログラムの構造も整理されます。これはソフトウェア開発において非常に重要な設計方法です。

また、for文を利用して一から百までの整数を順番に調べています。Kotlinの繰り返し処理は非常に読みやすく、プログラムの流れを理解しやすい特徴があります。条件分岐にはif文を使用し、素数である場合だけ結果を表示しています。

素数判定アルゴリズムは数学とプログラミングの両方の知識を活用するテーマであり、アルゴリズム思考を身につけるための非常に良い練習問題です。今回紹介した内容をしっかり理解することで、プログラミングの基礎力を着実に高めることができます。

先生と生徒の振り返り会話

生徒

Kotlinで素数判定アルゴリズムを作る方法がよくわかりました。最初は数学の話なので難しそうに感じていましたが、実際にプログラムとして書いてみるととても理解しやすかったです。

先生

それは良かったですね。素数判定アルゴリズムはプログラミングと数学を結びつけて学べるとても良いテーマです。Kotlinのような読みやすい言語を使うとアルゴリズムの仕組みも理解しやすくなります。

生徒

二から順番に割っていく方法と平方根まで調べる方法があることも学べました。アルゴリズムを工夫すると計算が速くなるのが面白いですね。

先生

その通りです。アルゴリズムの改善はプログラミングの世界ではとても重要な考え方です。処理速度や効率を意識してプログラムを書くことで、より実用的なソフトウェアを作れるようになります。

生徒

Kotlinで素数判定アルゴリズムを学んだことで、繰り返し処理や条件分岐、関数の使い方も理解できました。プログラミングの基本がつながってきた気がします。

先生

それはとても良い理解です。素数判定アルゴリズムはプログラミング初心者が学ぶ基本要素をたくさん含んでいます。これからもKotlinを使ってさまざまな数学アルゴリズムやデータ処理に挑戦していくと、さらに理解が深まりますよ。

関連セミナーのご案内

【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分

「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。

本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。

具体的な体験内容と環境

【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。

【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。

この60分で得られる3つの体験

1. 自分のパソコンが「開発基地」に

プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。

2. プログラミングの「仕組み」がスッキリ

「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。

3. 「読みやすい」から「直せる」へ

Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。

※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。

セミナー画像

Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験

カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinのクラスドキュメントコメントの書き方ガイド|初心者でもわかるKDocの基本と書き方
New2
Go言語
Go言語の関数設計パターン集!可読性と再利用性を高めよう
New3
Go言語
Go言語のインターフェースと抽象化の考え方を初心者向けに解説
New4
Kotlin
Kotlinのsorted・sortedByでコレクションをソートする方法【初心者向け完全ガイド】
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.2
Java&Spring記事人気No2
Swift
Swift入門ガイド|基本構文と書き方をマスターしよう
No.3
Java&Spring記事人気No3
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.4
Java&Spring記事人気No4
Kotlin
Kotlinで画面遷移を実装しよう!初心者でもわかるIntentの使い方完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のマルチステージビルド完全解説!Dockerで軽量なコンテナを作る方法
No.6
Java&Spring記事人気No6
Kotlin
Kotlinの可視性修飾子を完全ガイド!public・private・internalの意味と使い分けを初心者向けに解説
No.7
Java&Spring記事人気No7
Go言語
Go言語の構造体を使った設計パターン集(DTO・VOなど)
No.8
Java&Spring記事人気No8
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説