この記事では、C言語である数値が別の数値の倍数であるかどうかを判定する方法を解説します。
nの倍数の判定方法
プログラミングにおいて、ある数値が別の数値の倍数であるかどうかを判定することはよくあります。
C言語では、いくつかの方法を使ってnの倍数かどうかを判定することができます。
以下では、3つの方法を紹介します。
方法1: 剰余演算子を使った判定
剰余演算子(%)を使って、ある数値を別の数値で割った余りを求めることができます。
nの倍数であるかどうかを判定するためには、割られる数をnで割った余りが0であるかどうかを確認します。
もし余りが0であれば、nの倍数であると言えます。
以下に、剰余演算子を使ったnの倍数の判定のサンプルコードを示します。
#include <stdio.h>
int main() {
int n = 5; // 判定する数値
int num = 15; // 判定対象の数値
if (num % n == 0) {
printf("%dは%dの倍数です。\n", num, n);
} else {
printf("%dは%dの倍数ではありません。\n", num, n);
}
return 0;
}
上記のコードでは、変数n
には判定する数値を、変数num
には判定対象の数値を設定しています。
剰余演算子を使ってnum
をn
で割った余りが0であるかどうかを判定し、結果を出力しています。
方法2: 除算を使った判定
除算を使っても、nの倍数かどうかを判定することができます。
具体的には、判定対象の数値をnで割った商が整数であるかどうかを確認します。
もし商が整数であれば、nの倍数であると言えます。
以下に、除算を使ったnの倍数の判定のサンプルコードを示します。
#include <stdio.h>
int main() {
int n = 3; // 判定する数値
int num = 9; // 判定対象の数値
if (num / n * n == num) {
printf("%dは%dの倍数です。\n", num, n);
} else {
printf("%dは%dの倍数ではありません。\n", num, n);
}
return 0;
}
上記のコードでは、変数n
には判定する数値を、変数num
には判定対象の数値を設定しています。
num
をn
で割った商にn
を掛けた結果がnum
と等しいかどうかを判定し、結果を出力しています。
方法3: ビット演算を使った判定
ビット演算を使っても、nの倍数かどうかを判定することができます。
具体的には、nの倍数である場合、nのビット表現において最下位のビットからn-1個のビットがすべて0となります。
この性質を利用して、ビット演算を使ってnの倍数かどうかを判定することができます。
以下に、ビット演算を使ったnの倍数の判定のサンプルコードを示します。
#include <stdio.h>
int main() {
int n = 4; // 判定する数値
int num = 16; // 判定対象の数値
if ((num & (n - 1)) == 0) {
printf("%dは%dの倍数です。\n", num, n);
} else {
printf("%dは%dの倍数ではありません。\n", num, n);
}
return 0;
}
上記のコードでは、変数n
には判定する数値を、変数num
には判定対象の数値を設定しています。
num
とn-1
のビットごとの論理積を取り、結果が0であるかどうかを判定し、結果を出力しています。
以上が、C言語でnの倍数かどうかを判定する方法の解説です。
剰余演算子、除算、ビット演算のいずれかを使って、nの倍数かどうかを判定することができます。
適切な方法を選んで、プログラムに組み込んでみてください。