【C言語】数値が2で割り切れるかを判定する方法を解説

本記事では、「c言語 2で割り切れるか判定するプログラムの書き方」について解説します。
if文を使った割り切れるか判定するプログラムの書き方
C言語で2で割り切れるかどうかを判定するプログラムを作成する方法について解説します。
まず、if文を使って条件分岐させます。具体的には、以下のようなコードになります。
#include <stdio.h>
int main() {
int num;
printf("整数を入力してください: ");
scanf("%d", &num);
if (num % 2 == 0) {
printf("%dは2で割り切れます。\n", num);
} else {
printf("%dは2で割り切れません。\n", num);
}
return 0;
}
このプログラムでは、ユーザーから整数値を入力してもらい、その値が2で割り切れるかどうかをif文で判断し、結果を出力しています。
%演算子は余り(mod)の計算結果を返すため、「num % 2 == 0」の式が真となる(あまりが0)場合、つまり「num」が偶数の場合、「printf("%dは2で割り切れます。\n", num);
」が実行されます。
逆に奇数の場合、「printf("%dは2で割り切れません。\n", num);
」が実行されます。
以上がC言語で2で割り切れるかどうかを判定するプログラムの基本的な書き方です。
ビット演算子を使った割り切れるか判定するプログラムの書き方
ビット演算子を使った割り切れるか判定するプログラムの書き方について説明します。
C言語では、ビット演算子を使用して数値の2進数表現を扱うことができます。これを利用して、ある数値が2で割り切れるかどうかを判定することができます。
以下は、ビット演算子を使用した2で割り切れるかどうかの判定プログラムです。
#include <stdio.h>
int main() {
int num;
printf("整数値を入力してください: ");
scanf("%d", &num);
if ((num & 1) == 0) {
printf("%dは2で割り切れます。\n", num);
} else {
printf("%dは2で割り切れません。\n", num);
}
return 0;
}
上記コード中 (num & 1)
の部分では、変数 num
の最下位ビット(一番右側の桁)だけ抽出されています。そしてその結果が 0
(偶数)ならば「2で割り切れる」という条件文に入ります。
switch文を使った割り切れるか判定するプログラムの書き方
switch文を使った割り切れるか判定するプログラムの書き方について説明します。
まず、switch文はif文と同じように条件分岐を行う制御構造です。以下は、2で割り切れるかどうかを判定するプログラム例です。
#include <stdio.h>
int main() {
int num;
printf("数字を入力してください: ");
scanf("%d", &num);
switch(num % 2) {
case 0:
printf("%dは2で割り切れます。\n", num);
break;
default:
printf("%dは2で割り切れません。\n", num);
break;
}
return 0;
}
このプログラムでは、ユーザーが入力した数値をnum
変数に格納し、その後num % 2
の結果に応じてswitch文内の処理が実行されます。
ここでは、case 0:
が「余りが0」すなわち「2で割り切れる」という条件に対応しており、入力された値が2で割り切れる(偶数)なら%dは2で割り切れます。
というメッセージが表示されます。
一方、「default:」部分は上記以外の場合(つまり余りが1)すなわち「2で割りきれない」という条件に対応しており、%dは2で割りきれません。
というメッセージが表示されます。
以上が、switch文を使ったC言語プログラム例です。
まとめ
C言語を使った2で割り切れるか判定するプログラムの書き方について、if文、ビット演算子、switch文の3つの方法を紹介しました。
それぞれの方法にはメリット・デメリットがありますが、どの方法でも正確な結果を得ることができます。
是非この記事を参考にして自分自身でプログラムを作成してみてください。