C++で数値が29で割り切れるかどうかを判定する方法
与えられた数値が29で割り切れるかどうかを判定するのは、非常にシンプルな問題です。C++では、剰余演算子(%)を使うことで簡単にチェックできます。ある数値を29で割った余りが0になれば、その数値は29の倍数であると判断できます。
それでは、具体的な例を見てみましょう。
入力
29 254
出力
1 0
アルゴリズム
判定の手順は以下の通りです。
- 判定対象の数値 n を受け取る。
- n を29で割った余り(n % 29)を計算する。
- 余りが0であれば「割り切れる」(true)、そうでなければ「割り切れない」(false)を返す。
C++での実装
以下は、上記のアルゴリズムをC++で実装したコードです。
#include <bits/stdc++.h>
using namespace std;
bool isDivisibleBy29(long long n) {
return n % 29 == 0;
}
int main() {
cout << isDivisibleBy29(29) << endl;
cout << isDivisibleBy29(234567876543) << endl;
cout << isDivisibleBy29(234567657329) << endl;
return 0;
}この実装では、long long 型を使用することで、非常に大きな数値にも対応できるようにしています。isDivisibleBy29 関数は、引数として受け取った数値を29で割った余りが0かどうかをブール値で返します。
出力結果
上記のコードを実行すると、次のような結果が得られます。
1 1 0
最初の数値 29 は29そのものであるため割り切れ、234567876543 も29の倍数なので1(true)が出力されます。一方、234567657329 は29で割ると余りが発生するため、0(false)が出力されます。
まとめ
このように、剰余演算子 % を使えば、任意の数値がある数で割り切れるかどうかを一行のコードで判定できます。この手法は、29に限らず任意の除数に対して同様に応用できるため、プログラミングの基礎としてぜひ覚えておきましょう。
-
C++で巨大な数値が2・3・5で割り切れるかを判定する方法
本記事では、非常に大きな数値が2・3・5のすべてで割り切れるかどうかを判定する方法を解説します。対象となる数は桁数が非常に大きいため、通常の整数型では扱えません。そこで、数値を文字列(string)として受け取り、各桁を調べることで判定を行います。判定の考え方:最小公倍数を使うある数が2・3・5のすべてで割り切れるということは、その数がこれらの最小公倍数(LCM)で割り切れることと同じです。2、3、5の最小公倍数は 30つまり「30で割り切れるか」を判定すればよいさらに、30で割り切れる条件は次のように分解できます。10で割り切れる → 最後の桁(1の位)が「0」である3で割り切れる → 全桁
-
C++で大きな数が11で割り切れるかどうかを判定する方法
本記事では、C++を用いて、ある数が11で割り切れるかどうかを判定する方法を解説します。ここで扱うのは非常に大きな数であるため、int 型や long long 型といった標準的な整数型には収まりません。そこで、数値を文字列として受け取り、桁ごとに処理を行います。 11の倍数判定法とは ある整数が11で割り切れるかどうかは、次の有名な判定法で簡単に確認できます。 左から順に各桁を見て、奇数番目の桁の合計と偶数番目の桁の合計をそれぞれ求める。 両者の差が0、または11の倍数であれば、その数は11で割り切れる。 特に、奇数番目の桁の合計と偶数番目の桁の合計が一致していれば、差は必ず0になるた