広告スペース(バナー)
🍎Objective-C レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 60 / 68
素数かどうかを判定しよう
このレッスンでは、Objective-Cである数が素数かどうかを判定する方法を学び、繰り返し処理を使った基本的な数学アルゴリズムを理解することを目標にします。「Objective-C 素数判定 実装」で調べている方向けです。
ある数が素数(1とその数自身でしか割り切れない数)かどうかは、2から「その数の平方根」までの数で割り切れるかを調べればわかります。すべて割り切れなければ素数です。
サンプルコードでは、for (int i = 2; i * i <= n; i++)という範囲でループし、n % i == 0となる数が見つかった時点で素数ではないと判定しています。BOOL型でYES・NOを返している点にも注目してみましょう。
初心者がよくつまずくのが、なぜ平方根までしか確認しなくてよいのかという理由です。単純にn未満のすべての数で割り切れるか確認しても正しく判定できますが、平方根までに絞ることで無駄な計算を減らし処理を高速化できます。
暗号技術の基礎にも使われる重要な数学的性質で、エラトステネスの篩(ふるい)という、複数の素数を一度に効率よく求める発展的な手法も存在します。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではObjective-Cを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
入力された数が素数かどうかを判定するツールが作れるようになります。
入力された数が素数かどうかを判定するツールが作れるようになります。
広告スペース(バナー)
広告スペース(記事内)