数値処理

[C言語] nの倍数かどうか判定する方法を解説

C言語で整数がnの倍数かどうかを判定するには、剰余演算子%を使用します。

具体的には、整数xnで割った余りを求め、結果が0であればxnの倍数です。

この判定はif文を用いてif (x % n == 0)のように記述します。

この方法は効率的で、整数の倍数判定に広く利用されています。

C言語でのnの倍数判定方法

剰余演算子を使った判定

C言語でnの倍数を判定する際に最も基本的な方法は、剰余演算子(%)を使用することです。

剰余演算子は、2つの整数を割った余りを返します。

ある数値がnの倍数であるかどうかを判定するには、その数値をnで割った余りが0であるかを確認します。

#include <stdio.h>
int main() {
    int number = 10; // 判定したい数値
    int n = 5; // 基準となる数値
    // 剰余演算子を使って倍数判定
    if (number % n == 0) {
        printf("%dは%dの倍数です。\n", number, n);
    } else {
        printf("%dは%dの倍数ではありません。\n", number, n);
    }
    return 0;
}
10は5の倍数です。

このコードでは、numbernの倍数であるかを判定しています。

number % nが0であれば、numbernの倍数です。

if文による条件分岐

剰余演算子を使った判定を行う際には、if文を用いて条件分岐を行います。

if文は、条件が真である場合に特定の処理を実行するための構文です。

以下は、if文を用いた倍数判定の例です。

#include <stdio.h>
int main() {
    int number = 12; // 判定したい数値
    int n = 4; // 基準となる数値
    // if文による条件分岐
    if (number % n == 0) {
        printf("%dは%dの倍数です。\n", number, n);
    } else {
        printf("%dは%dの倍数ではありません。\n", number, n);
    }
    return 0;
}
12は4の倍数です。

この例では、if文を使ってnumbernの倍数であるかどうかを判定し、結果に応じて異なるメッセージを表示しています。

関数を使った倍数判定の実装

倍数判定を行う処理を関数として定義することで、コードの再利用性を高めることができます。

以下は、倍数判定を行う関数isMultipleを定義した例です。

#include <stdio.h>
// 倍数判定を行う関数
int isMultiple(int number, int n) {
    return number % n == 0;
}
int main() {
    int number = 15; // 判定したい数値
    int n = 3; // 基準となる数値
    // 関数を使って倍数判定
    if (isMultiple(number, n)) {
        printf("%dは%dの倍数です。\n", number, n);
    } else {
        printf("%dは%dの倍数ではありません。\n", number, n);
    }
    return 0;
}
15は3の倍数です。

このコードでは、isMultiple関数を定義し、numbernの倍数であるかを判定しています。

関数を使うことで、同じ判定処理を複数の場所で簡単に利用することができます。

実際のコード例

単一の数値に対する倍数判定

単一の数値に対して倍数判定を行う基本的な例を示します。

この例では、特定の数値が指定した数の倍数であるかを判定します。

#include <stdio.h>
int main() {
    int number = 20; // 判定したい数値
    int n = 5; // 基準となる数値
    // 単一の数値に対する倍数判定
    if (number % n == 0) {
        printf("%dは%dの倍数です。\n", number, n);
    } else {
        printf("%dは%dの倍数ではありません。\n", number, n);
    }
    return 0;
}
20は5の倍数です。

このコードは、numbernの倍数であるかを判定し、結果を表示します。

複数の数値に対する倍数判定

複数の数値に対して倍数判定を行う場合、配列を使用して効率的に処理を行うことができます。

以下の例では、配列内の各数値が指定した数の倍数であるかを判定します。

#include <stdio.h>
int main() {
    int numbers[] = {10, 15, 20, 25, 30}; // 判定したい数値の配列
    int n = 5; // 基準となる数値
    int size = sizeof(numbers) / sizeof(numbers[0]); // 配列の要素数
    // 複数の数値に対する倍数判定
    for (int i = 0; i < size; i++) {
        if (numbers[i] % n == 0) {
            printf("%dは%dの倍数です。\n", numbers[i], n);
        } else {
            printf("%dは%dの倍数ではありません。\n", numbers[i], n);
        }
    }
    return 0;
}
10は5の倍数です。
15は5の倍数です。
20は5の倍数です。
25は5の倍数です。
30は5の倍数です。

このコードは、配列numbers内の各要素に対して倍数判定を行い、結果を表示します。

ユーザー入力を利用した倍数判定

ユーザーからの入力を利用して倍数判定を行う例です。

この例では、ユーザーに数値を入力してもらい、その数値が指定した数の倍数であるかを判定します。

#include <stdio.h>
int main() {
    int number; // ユーザーが入力する数値
    int n = 3; // 基準となる数値
    // ユーザー入力を利用した倍数判定
    printf("数値を入力してください: ");
    scanf("%d", &number);
    if (number % n == 0) {
        printf("%dは%dの倍数です。\n", number, n);
    } else {
        printf("%dは%dの倍数ではありません。\n", number, n);
    }
    return 0;
}
数値を入力してください: 9
9は3の倍数です。

このコードは、ユーザーから入力されたnumbernの倍数であるかを判定し、結果を表示します。

ユーザーの入力に応じて動的に判定を行うことができます。

応用例

配列を用いた複数の数値の倍数判定

配列を用いることで、複数の数値に対して効率的に倍数判定を行うことができます。

以下の例では、配列内の数値が指定した数の倍数であるかを判定し、倍数である数値のみを表示します。

#include <stdio.h>
int main() {
    int numbers[] = {8, 12, 15, 22, 30}; // 判定したい数値の配列
    int n = 3; // 基準となる数値
    int size = sizeof(numbers) / sizeof(numbers[0]); // 配列の要素数
    // 配列を用いた複数の数値の倍数判定
    printf("%dの倍数は: ", n);
    for (int i = 0; i < size; i++) {
        if (numbers[i] % n == 0) {
            printf("%d ", numbers[i]);
        }
    }
    printf("\n");
    return 0;
}
3の倍数は: 12 15 30 

このコードは、配列numbers内の各要素に対して倍数判定を行い、倍数である数値をリストアップしています。

ループを使った連続した数値の判定

ループを使用することで、連続した数値に対して倍数判定を行うことができます。

以下の例では、1から10までの数値に対して倍数判定を行います。

#include <stdio.h>
int main() {
    int n = 2; // 基準となる数値
    // ループを使った連続した数値の判定
    printf("1から10までの%dの倍数は: ", n);
    for (int i = 1; i <= 10; i++) {
        if (i % n == 0) {
            printf("%d ", i);
        }
    }
    printf("\n");
    return 0;
}
1から10までの2の倍数は: 2 4 6 8 10 

このコードは、1から10までの数値に対して倍数判定を行い、倍数である数値を表示します。

特定の範囲内での倍数をリストアップ

特定の範囲内で倍数をリストアップすることも可能です。

以下の例では、指定した範囲内での倍数をリストアップします。

#include <stdio.h>
int main() {
    int start = 5; // 範囲の開始値
    int end = 25; // 範囲の終了値
    int n = 4; // 基準となる数値
    // 特定の範囲内での倍数をリストアップ
    printf("%dから%dまでの%dの倍数は: ", start, end, n);
    for (int i = start; i <= end; i++) {
        if (i % n == 0) {
            printf("%d ", i);
        }
    }
    printf("\n");
    return 0;
}
5から25までの4の倍数は: 8 12 16 20 24 

このコードは、指定した範囲内でnの倍数をリストアップし、結果を表示します。

範囲を自由に設定することで、様々な条件で倍数を確認することができます。

まとめ

C言語でのnの倍数判定は、剰余演算子を用いることで簡単に実装できます。

剰余演算子を使った基本的な判定方法から、配列やループを用いた応用例まで、様々な方法で倍数判定を行うことができます。

この記事を参考に、倍数判定を活用したプログラムを作成し、C言語の理解を深めてみてください。

関連記事

Back to top button
目次へ