Bookmarks    
P値の計算    
比の計算    
行列式    
逆行列    
円の計算    
球の体積    
年齢計算    
日数計算    
曜日計算    
時差計算    
複利計算    
単利計算    
利息計算    
ROIの計算    
IRRの計算    
GDPの計算    
CAGR計算    
BMI計算機    
TDEE計算機    
1RM計算機    
露点温度    
進数変換    
給与換算    
燃費計算    
生コン量    
外壁面積    
   追加
確率・ランダムの計算ツール
2つの独立な事象の確率
2つの独立な事象の確率
2つの事象の確率(逆算)
2つの事象の確率(逆算)
くり返したときの確率
くり返したときの確率
条件付き確率・ベイズの定理
条件付き確率・ベイズの定理
期待値計算機
期待値計算機
二項分布の計算機
二項分布の計算機
順列・組み合わせ
順列・組み合わせ
円順列・じゅず順列
円順列・じゅず順列
重複順列・重複組合せ
重複順列・重複組合せ
乱数ジェネレーター
乱数ジェネレーター
平均・統計の計算ツール
平均計算機
平均計算機
代表値計算機(最頻値ほか)
代表値計算機(最頻値ほか)
標準偏差計算機
標準偏差計算機
四分位数計算機
四分位数計算機
度数分布表 計算機
度数分布表 計算機
相関係数計算機
相関係数計算機
正規分布の確率
正規分布の確率
Zスコアの計算
Zスコアの計算
信頼区間の計算
信頼区間の計算
サンプルサイズの計算
サンプルサイズの計算
標本調査の計算
標本調査の計算
P値の計算
P値の計算
割合・パーセントの計算ツール
割合・パーセントの計算
割合・パーセントの計算
増減率の計算
増減率の計算
パーセント差
パーセント差
誤差率の計算
誤差率の計算
比の計算
比の計算
割引計算機
割引計算機
消費税の計算
消費税の計算
利益率計算機
利益率計算機
速さの計算ツール
速さ計算機
速さ計算機
密度・濃度の計算ツール
密度計算機
密度計算機
モル濃度計算機
モル濃度計算機
分子量・モル質量
分子量・モル質量
物理・電気工学の計算ツール
オームの法則の計算
オームの法則の計算
W・A・V の相互換算
W・A・V の相互換算
抵抗器カラーコードの計算
抵抗器カラーコードの計算
電圧降下の計算
電圧降下の計算
単位の換算の計算ツール
坪・畳・㎡換算
坪・畳・㎡換算
重さの単位換算
重さの単位換算
靴サイズの変換
靴サイズの変換
整数・正負の数の計算ツール
割り算の筆算(商と余り)
割り算の筆算(商と余り)
最小公倍数計算機
最小公倍数計算機
最大公約数
最大公約数
正負の数の計算機
正負の数の計算機
素因数分解
素因数分解
一次不定方程式計算機
一次不定方程式計算機
合同式・余りの計算機
合同式・余りの計算機
約数計算機
約数計算機
ローマ数字変換
ローマ数字変換
分数・小数・端数処理の計算ツール
分数計算機
分数計算機
帯分数計算機
帯分数計算機
約分計算機
約分計算機
分数から小数への変換
分数から小数への変換
小数から分数への変換
小数から分数への変換
四捨五入・切り上げ・切り捨て
四捨五入・切り上げ・切り捨て
方程式・不等式の計算ツール
一次方程式計算機
一次方程式計算機
連立方程式計算機
連立方程式計算機
二次方程式の解の公式
二次方程式の解の公式
絶対値の方程式・不等式
絶対値の方程式・不等式
二次不等式 計算機
二次不等式 計算機
三次方程式計算機
三次方程式計算機
多項式・式の展開の計算ツール
文字式の計算機
文字式の計算機
因数分解計算機
因数分解計算機
式の展開 計算機
式の展開 計算機
多項式の割り算計算機
多項式の割り算計算機
二項定理の計算機
二項定理の計算機
平方根・n乗根の計算ツール
根号の簡約
根号の簡約
分母の有理化
分母の有理化
累乗根の計算
累乗根の計算
指数・対数の計算ツール
べき乗計算機
べき乗計算機
対数計算機
対数計算機
常用対数と桁数
常用対数と桁数
科学的記数法
科学的記数法
科学的記数法の計算
科学的記数法の計算
半減期計算機
半減期計算機
複素数の計算ツール
複素数計算機
複素数計算機
複素数の極形式変換
複素数の極形式変換
ド・モアブルの定理
ド・モアブルの定理
関数・グラフの計算ツール
直線の傾きの計算
直線の傾きの計算
一次関数計算機
一次関数計算機
比例・反比例 計算機
比例・反比例 計算機
二次関数 y=ax² 計算機
二次関数 y=ax² 計算機
2点間の距離の計算
2点間の距離の計算
3D空間の2点間の距離の計算
3D空間の2点間の距離の計算
内分点・外分点の計算
内分点・外分点の計算
点と直線の距離 計算機
点と直線の距離 計算機
緯度経度の距離計算
緯度経度の距離計算
平方完成 計算機
平方完成 計算機
円の方程式 計算機
円の方程式 計算機
二次曲線計算機
二次曲線計算機
極座標と直交座標の変換
極座標と直交座標の変換
微分・積分の計算ツール
極限計算機
極限計算機
導関数計算機
導関数計算機
微分公式の計算機
微分公式の計算機
接線・法線 計算機
接線・法線 計算機
定積分計算機
定積分計算機
不定積分計算機
不定積分計算機
2曲線間の面積
2曲線間の面積
回転体の体積 計算機
回転体の体積 計算機
数列の計算ツール
等差数列の計算
等差数列の計算
等比数列の計算
等比数列の計算
Σ(シグマ)計算機
Σ(シグマ)計算機
フィボナッチ数列の計算
フィボナッチ数列の計算
漸化式計算機
漸化式計算機
ベクトルの計算ツール
ベクトルの計算
ベクトルの計算
外積の計算
外積の計算
行列の計算ツール
行列の計算
行列の計算
行列式
行列式
逆行列
逆行列
平面図形の計算ツール
三角比の計算
三角比の計算
度とラジアンの変換
度とラジアンの変換
三角関数の合成
三角関数の合成
三角形計算機
三角形計算機
三角形の面積計算機
三角形の面積計算機
直角三角形の計算
直角三角形の計算
三平方の定理の計算
三平方の定理の計算
多角形の内角・外角
多角形の内角・外角
相似比・面積比・体積比
相似比・面積比・体積比
平行線と角
平行線と角
長方形の面積
長方形の面積
平行四辺形の面積
平行四辺形の面積
台形の面積
台形の面積
円の計算
円の計算
扇形の面積
扇形の面積
円周角の定理
円周角の定理
楕円の面積
楕円の面積
空間図形の計算ツール
立方体の体積
立方体の体積
立方体の表面積
立方体の表面積
直方体の体積
直方体の体積
直方体の表面積
直方体の表面積
円柱の体積
円柱の体積
円柱の表面積
円柱の表面積
球の体積
球の体積
球の表面積
球の表面積
球欠(球冠)の体積
球欠(球冠)の体積
球冠の表面積
球冠の表面積
楕円体の体積
楕円体の体積
楕円体の表面積
楕円体の表面積
四角錐の体積
四角錐の体積
四角錐の表面積
四角錐の表面積
円錐の体積
円錐の体積
円錐の表面積
円錐の表面積
円錐台の体積
円錐台の体積
円錐台の表面積
円錐台の表面積
パイプ(管)の体積
パイプ(管)の体積
カプセル形の体積
カプセル形の体積
カプセルの表面積
カプセルの表面積
日付・時間の計算ツール
年齢計算
年齢計算
日数計算
日数計算
○日後・○日前の日付
○日後・○日前の日付
○時間後・○時間前の日時
○時間後・○時間前の日時
曜日計算
曜日計算
時間の足し算・引き算
時間の足し算・引き算
時差計算
時差計算
勤務時間計算
勤務時間計算
時間差の計算
時間差の計算
タイムカード計算
タイムカード計算
金融・経済の計算ツール
複利計算
複利計算
単利計算
単利計算
利息計算
利息計算
ファイナンス計算機
ファイナンス計算機
現在価値の計算
現在価値の計算
将来価値の計算
将来価値の計算
ROIの計算
ROIの計算
IRRの計算
IRRの計算
回収期間の計算
回収期間の計算
平均リターンの計算
平均リターンの計算
GDPの計算
GDPの計算
Webマーケ・広告指標の計算ツール
クリック率(CTR)の計算
クリック率(CTR)の計算
コンバージョン率(CVR)の計算
コンバージョン率(CVR)の計算
CPC・CPM・CPA計算機
CPC・CPM・CPA計算機
ROAS(広告費用対効果)の計算
ROAS(広告費用対効果)の計算
損益分岐CPA・許容CPA計算機
損益分岐CPA・許容CPA計算機
顧客生涯価値(LTV)の計算
顧客生涯価値(LTV)の計算
顧客獲得コスト(CAC)とLTV/CAC比
顧客獲得コスト(CAC)とLTV/CAC比
チャーン率(解約率)と平均継続期間
チャーン率(解約率)と平均継続期間
A/Bテストの有意差判定
A/Bテストの有意差判定
A/Bテストの必要サンプル数
A/Bテストの必要サンプル数
検索順位別CTRからの想定流入数
検索順位別CTRからの想定流入数
損益分岐点計算機
損益分岐点計算機
値入率・掛率換算
値入率・掛率換算
CAGR計算
CAGR計算
健康・フィットネスの計算ツール
BMI計算機
BMI計算機
睡眠サイクル計算
睡眠サイクル計算
カロリー計算機
カロリー計算機
基礎代謝量計算機
基礎代謝量計算機
TDEE計算機
TDEE計算機
理想体重計算機
理想体重計算機
体脂肪率計算機
体脂肪率計算機
除脂肪体重計算機
除脂肪体重計算機
消費カロリー計算機
消費カロリー計算機
たんぱく質摂取量計算機
たんぱく質摂取量計算機
PFCバランス計算機
PFCバランス計算機
炭水化物摂取量計算機
炭水化物摂取量計算機
脂質摂取量計算機
脂質摂取量計算機
子供の身長予測
子供の身長予測
スポーツの計算ツール
ゴルフハンディキャップ
ゴルフハンディキャップ
ペース計算機
ペース計算機
1RM計算機
1RM計算機
目標心拍数計算機
目標心拍数計算機
気象の計算ツール
ヒートインデックス
ヒートインデックス
ウインドチル
ウインドチル
露点温度
露点温度
コンピュータの計算ツール
進数変換
進数変換
IPサブネット計算機
IPサブネット計算機
帯域幅・ダウンロード時間の計算機
帯域幅・ダウンロード時間の計算機
家計・光熱費の計算ツール
電気代計算
電気代計算
kWh→電気代・逆算
kWh→電気代・逆算
年間消費電力量→電気代
年間消費電力量→電気代
エアコン畳数・能力
エアコン畳数・能力
エアコンの電気代計算
エアコンの電気代計算
暖房の電気代比較
暖房の電気代比較
ガスと電気の光熱費比較
ガスと電気の光熱費比較
LED交換の節約額
LED交換の節約額
給与換算
給与換算
家計収支の計算
家計収支の計算
自動車の計算ツール
ガソリン代計算
ガソリン代計算
EV充電コスト
EV充電コスト
EVとガソリン車の燃料費比較
EVとガソリン車の燃料費比較
燃費計算
燃費計算
タイヤサイズ計算
タイヤサイズ計算
太陽光発電・蓄電池の計算ツール
太陽光発電の発電量
太陽光発電の発電量
太陽光パネルの枚数と面積
太陽光パネルの枚数と面積
太陽光発電の回収年数
太陽光発電の回収年数
蓄電池の必要容量と持ち時間
蓄電池の必要容量と持ち時間
住まい・DIYの計算ツール
タイル枚数
タイル枚数
階段の寸法
階段の寸法
生コン量
生コン量
壁・天井・床の面積
壁・天井・床の面積
壁紙の必要量
壁紙の必要量
塗料の必要量
塗料の必要量
フローリング枚数
フローリング枚数
外壁面積
外壁面積
砂利の必要量
砂利の必要量
モルタルの配合
モルタルの配合
勾配の計算
勾配の計算
木材の取り数
木材の取り数
建ぺい率・容積率
建ぺい率・容積率
クッションフロア必要量
クッションフロア必要量
畳の枚数と広さ
畳の枚数と広さ
断熱材の必要量
断熱材の必要量
カーテンのサイズ
カーテンのサイズ
テレビのサイズと視聴距離
テレビのサイズと視聴距離
土・培養土の必要量
土・培養土の必要量
芝生の必要枚数
芝生の必要枚数
ブロック塀の個数
ブロック塀の個数
レンガの必要枚数
レンガの必要枚数
ウッドデッキの材料
ウッドデッキの材料
スロープの必要長さ
スロープの必要長さ
ネジの下穴径と長さ
ネジの下穴径と長さ
容積と必要換気量
容積と必要換気量
塗料の希釈計算
塗料の希釈計算
巾木・廻り縁の長さ
巾木・廻り縁の長さ
ブラインドの採寸
ブラインドの採寸
額縁の取り付け高さと配置
額縁の取り付け高さと配置
排水勾配と高低差
排水勾配と高低差
ビス・釘の必要本数
ビス・釘の必要本数
木材の材積(m³・才)
木材の材積(m³・才)
フェンスの本数
フェンスの本数
木材の収縮量(含水率変化)
木材の収縮量(含水率変化)
接着剤・コーキングの必要量
接着剤・コーキングの必要量
部屋の熱損失の目安
部屋の熱損失の目安
家具の搬入可否
家具の搬入可否
引越しのダンボール枚数
引越しのダンボール枚数
収納・棚の容量
収納・棚の容量
板取り計算
板取り計算
棚板のたわみと耐荷重
棚板のたわみと耐荷重

合同式・余りの計算機(a mod n・合同判定・べき乗の余り)

モードを選んで、整数を入力してください。「余りを求める」では負の数にも対応し、数学の余り(0 以上)とプログラミングの % 演算子の違いも表示します。

数値は半角の整数で入力してください(小数・分数は使えません)。a・b・n は30桁以内、指数 k は 0 以上9桁以内、法 n は 1 以上です。
計算結果・図形
左でモードを選んで整数を入れ、「計算する」を押すと、ここに結果が表示されます(法 n が 2〜24 のときは、余りの位置を示す時計盤の図も出ます)。

このページでできること

  • 整数 \(a\) を \(n\) で割った余りを求められます。負の数(例:\(-7\) を \(3\) で割った余り)にも対応し、数学の余り(\(0 \le r < n\))と、C・Java・JavaScript などの % 演算子の結果(負になることがある)を並べて表示します
  • 合同式 \(a \equiv b \pmod{n}\) が成り立つかどうかを、「差 \(a - b\) が \(n\) の倍数か」という理由付きで判定できます
  • \(7^{100}\) を \(13\) で割った余りのような大きなべき乗の余りを、繰り返し二乗法の途中式付きで厳密に計算できます(電卓では桁あふれする数もそのまま計算できます)
  • 余りの様子を時計盤の図(mod \(n\) の円環)で確認でき、「余りは同じ場所をぐるぐる回る」というイメージがつかめます(時計盤の図は法 \(n\) が 2〜24 のときに表示されます)
  • 式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
法 \(n\) は 1 以上の整数です。\(a\)・\(b\)・\(n\) は 30 桁以内、指数 \(k\) は 0 以上 9 桁以内で入力してください。

この計算は何の役に立つ?

時計・カレンダーの計算(何日後は何曜日?)

時計の「14時=午後2時」は、14 mod 12 = 2 の余りの計算そのものです。曜日も「7 で 1 周する時計盤」と同じ仕組みで、例えば今日が月曜日なら、100 日後の曜日は 100 mod 7 = 2 から「月曜日の 2 つ先=水曜日」とわかります。
手帳のカレンダーもカレンダーアプリも、この余りの計算で日付と曜日を対応させています。

番号の間違いを見破るチェックディジット(バーコード・ISBN)

商品バーコード(JANコード)や書籍のISBNの最後の 1 桁は、前の桁から余りの計算で作られる検査用の桁(チェックディジット)です。例えばJANコードでは、桁の数字を 1 倍・3 倍と交互に掛けながら足した合計を 10 で割った余りから、最後の桁を決めます。
1 桁打ち間違えると余りが合わなくなるため、レジや通販システムはその場で入力間違いを見破れます。クレジットカード番号やマイナンバーの検査桁も同じ考え方です。

インターネットを守る暗号(RSA暗号)

クレジットカード番号などを安全に送る公開鍵暗号の代表であるRSA暗号は、「巨大な数のべき乗を割った余り」そのものを計算に使っています。べき乗の余りは速く計算できるのに、結果から元の数を逆算するのは非常に難しい、という一方通行の性質が安全性の根拠です。
このページの「べき乗の余り」モードで途中式を表示している繰り返し二乗法は、暗号ソフトが内部で日々実行している計算です。

プログラミングの定番(偶数・奇数の判定、順番をぐるぐる回す)

プログラミングでは、i % 2 で偶数・奇数を判定したり、i % n で「n 個で 1 周する順番」を作ったり(ゲームのターン制で次のプレイヤーを決める、スライドショーを最後まで行ったら最初に戻すなど)、% 演算子が日常的に使われます。
負の数が混ざると言語によって % の結果が違うため、「数学の余りと C・Java 系の % の違い」はバグ調査で役立つ知識です。

等分して余りを数える(配る・箱詰めする)

63 本の鉛筆を 12 人に同じ数ずつ配ると、1 人 5 本で 3 本余ります(63 = 12 × 5 + 3)。在庫の箱詰め(1 箱 n 個で何箱できて何個余るか)、イベントのグループ分けなど、「等分して余りを見る」場面はすべてこの計算です。
割り算の基本式 a = n × q + r は、こうした身近な場面を 1 本の式にしたものです。

式と図

割り算の基本式(余りの定義)
時計盤の図(mod 12)
数学表記 (一般的な数式)
\(a\) \(=\) \(n\) \(\times\) \(q\) \(+\) \(r\)
日本語表記 (記号を日本語に置き換えた式)
④ 割られる数 \(a\) \(=\) ① 割る数(法)\(n\) \(\times\) ② 商 \(q\) \(+\) ③ 余り \(r\)
式を日本語で読むと
① 割る数(法)\(n\) に
② 商 \(q\) を掛けて
③ 余り \(r\)(\(0 \le r < n\) に取る) を足すと
④ 割られる数 \(a\) に戻る。この形にただ一通りに書けて、\(r\) が「\(a\) を \(n\) で割った余り(\(a \bmod n\))」になる
簡単な例
38 を 12 で割ると(時計で「38 時」が 2 時になるのと同じ計算です)
割られる数 38 \(=\) 割る数 12 \(\times\) 商 3 \(+\) 余り 2
\(38 = 12 \times 3 + 2\)
\(38 \bmod 12 = 2\)
考え方のポイント
余り \(r\) は「\(0 \le r < n\)」の範囲に取るのが数学の約束です。負の数でも同じで、\(-7\) を \(3\) で割るときは \(-7 = 3 \times (-3) + 2\) のように、商を小さい方の整数(\(-3\))まで下げて余りを \(2\) にします(床除算)。 一方、プログラミングの % 演算子は言語によって流儀が違います。C・Java・JavaScript の -7 % 3 は、商を 0 に近い方(\(-2\))で切り捨てるため \(-1\) になります(余りの符号が割られる数と同じになる方式)。Python・Ruby の % と Excel の MOD 関数は、余りの符号が割る数と同じになる方式のため、数学と同じ \(2\) を返します。負の数の余りを扱うプログラムでは、この差がそのままバグの原因になるので注意してください。
合同式の定義(a ≡ b (mod n) とは)
数学表記 (一般的な数式)
\(a - b\) \(=\) \(n\) \(\times\) \(m\)
日本語表記 (記号を日本語に置き換えた式)
③ 2つの整数の差 \(a - b\) \(=\) ① 法 \(n\) \(\times\) ② ある整数 \(m\)
式を日本語で読むと
① 法 \(n\) を
② ある整数 \(m\) 倍したものが
③ 2つの整数の差 \(a - b\) とちょうど等しい(=差が \(n\) の倍数である)とき、\(a \equiv b \pmod{n}\) と書き、「\(a\) と \(b\) は \(n\) を法として合同」という
簡単な例
38 と 14 は 12 を法として合同です(\(38 \equiv 14 \pmod{12}\))
差(38 − 14 = 24) \(=\) 法 12 \(\times\) 整数 2
\(38 - 14 = 24 = 12 \times 2\)
\(38 \equiv 14 \pmod{12}\)
考え方のポイント
「差が \(n\) の倍数」であることと、「\(n\) で割った余りが等しい」ことは、同じ内容の言い換えです(実際 \(38 \bmod 12 = 2\)、\(14 \bmod 12 = 2\) で余りがそろっています)。だから合同式は「余りだけに注目した等式」と読めます。 時計をイメージすると、38 時も 14 時も 2 時も、文字盤では同じ位置を指します。mod \(n\) の世界は「\(n\) で 1 周する時計盤」で、合同な数どうしは時計盤の同じ位置に立つ数のことです。
掛け算と余りの関係(べき乗の余りの土台)
数学表記 (一般的な数式)
\((a \times b) \bmod n\) \(=\) \(\{(a \bmod n) \times (b \bmod n)\} \bmod n\)
日本語表記 (記号を日本語に置き換えた式)
② 積の余り \(=\) ① それぞれの余りを掛けてから取った余り
式を日本語で読むと
① それぞれの余りを掛けてから取った余り を計算しても
② 積の余り と同じになる(先に余りに直してから掛けてよい)
簡単な例
38 × 15 を 12 で割った余りは、それぞれの余り 2 と 3 だけから求められます
積(38 × 15 = 570)の余り \(=\) 余り 2 × 余り 3 = 6
\(38 \bmod 12 = 2,\quad 15 \bmod 12 = 3\)
\(2 \times 3 = 6\)
\((38 \times 15) \bmod 12 = 570 \bmod 12 = 6\)
考え方のポイント
この性質のおかげで、大きな数の掛け算を最後までしなくても、先に余りに直してから掛けてよいことになります。べき乗は掛け算の繰り返しなので、\(7^{100}\) のような巨大な数を実際に作らなくても、余りだけを追いかければ計算できます。これが繰り返し二乗法(2 乗するたびに余りを取りながら、指数を 2 のべき乗の和に分解して掛け合わせる方法)の土台で、この計算機の「べき乗の余り」モードもこの方法で途中式を表示しています。 また、べき乗の余りは種類が \(n\) 通りしかないため、必ずどこかで同じ余りに戻り、周期的に繰り返します。例えば \(7^{k}\) の一の位(mod \(10\) の余り)は 7・9・3・1 の 4 つを順にぐるぐる回ります。受験ではこの周期を見つける解き方も定番です。
合同式の性質(両辺どうしを足す・引く・掛ける)
数学表記 (一般的な数式)
\(a + c\) \(\equiv\) \(b + d\) \(\pmod{n}\)
\(a - c\) \(\equiv\) \(b - d\) \(\pmod{n}\)
\(a \times c\) \(\equiv\) \(b \times d\) \(\pmod{n}\)
日本語表記 (記号を日本語に置き換えた式)
① 左側どうしの和 \(a + c\) \(\equiv\) ② 右側どうしの和 \(b + d\) \(\pmod{n}\)
左側どうしの差 \(a - c\) \(\equiv\) 右側どうしの差 \(b - d\) \(\pmod{n}\)
左側どうしの積 \(a \times c\) \(\equiv\) 右側どうしの積 \(b \times d\) \(\pmod{n}\)
式を日本語で読むと
① \(a \equiv b\)、\(c \equiv d \pmod{n}\) のとき、 左側どうしを足したもの・引いたもの・掛けたもの は
② 右側どうしを足したもの・引いたもの・掛けたもの とそれぞれ合同のままになる(合同式は、普通の等式と同じ感覚で足す・引く・掛けるができる)
簡単な例
\(38 \equiv 2\)、\(15 \equiv 3 \pmod{12}\) を使うと
38 + 15 = 53 \(\equiv\) 2 + 3 = 5 \(\pmod{12}\)
\(38 + 15 = 53 \equiv 5,\quad 2 + 3 = 5 \pmod{12}\)
\(38 \times 15 = 570 \equiv 6,\quad 2 \times 3 = 6 \pmod{12}\)
考え方のポイント
大きな数の計算でも、先に余りに直してから足す・引く・掛けるができるのが、この性質の便利なところです。 ただし、割り算だけは自由にできません。例えば \(6 \equiv 12 \pmod{6}\) は成り立ちますが、両辺を 2 で割った \(3 \equiv 6 \pmod{6}\) は成り立ちません(差 3 は 6 の倍数ではありません)。両辺を割ってよいのは、割る数と法が互いに素(最大公約数が 1)のときだけです。
整数 \(a\) を \(n\) で割った余りは、\(a = n \times q + r\)(\(0 \le r < n\))の形にただ一通りに書いたときの \(r\) です。合同式 \(a \equiv b \pmod{n}\) は「\(a\) と \(b\) の差が \(n\) の倍数(= \(n\) で割った余りが等しい)」という意味で、足す・引く・掛けるが等式と同じ感覚でできます。この性質のおかげで、大きなべき乗の余りも、余りだけを追いかける繰り返し二乗法で手早く求められます。

用語・記号の解説

記号

\(\equiv\) ごうどう (〜と合同である) 合同を表す記号。等号(=)の線を 3 本にした形で、「完全に等しい」よりゆるい「余りの世界では等しい」ことを表します。
\(\bmod\)(mod) モッド 法を表す記号。英語 modulus(法)の略で、ラテン語の modulus(ものさし・尺度)に由来するといわれます。「\(a \bmod n\)」は「\(a\) を \(n\) で割った余り」、式の後ろの「\(\pmod{n}\)」は「\(n\) を法として考えます」という宣言です。
\(a,\ b\) エー・ビー 余りを調べる整数。合同式では左右に並ぶ 2 つの整数です。「決まった数」を表すときはアルファベットの最初の方の文字を使う慣例があります。
\(n\) エヌ 法(何で割った余りで考えるかを決める数)。number(数)の頭文字 \(n\) がよく使われます。このページでは 1 以上の整数です。
\(q\) キュー 商。quotient(商)の頭文字です。負の数の割り算では、余りを 0 以上にするため商を小さい方の整数へ切り捨てます(床除算)。
\(r\) アール 余り。remainder(余り)の頭文字です。数学の約束では \(0 \le r < n\) の範囲に取ります。
\(m\) エム 合同式の定義に出てくる「差が法の何倍か」を表す整数。負の整数や 0 のこともあります。
\(a^{k}\) エーのケーじょう \(a\) を \(k\) 回掛け合わせたもの(べき乗)。右上の小さい数 \(k\) が「掛ける回数」を表す指数です。
% パーセント (剰余演算子としてはモッド) 多くのプログラミング言語で余りを求める剰余演算子。百分率のパーセントと同じ記号ですが別の意味です。C・Java・JavaScript では負の数に対する結果が数学の余りと異なることがあります(式カード1のポイント参照)。

用語

余り
(剰余)
あまり(じょうよ) 割り算で割り切れずに残る数。剰余は余りの少し形式ばった呼び方で、意味は同じです。数学では \(0\) 以上・割る数未満に取るのが約束です。
商 しょう 割り算の「何回引けるか」にあたる整数。割り算の基本式 \(a = n \times q + r\) の \(q\) です。
法 ほう 「何で割った余りで考えるか」を決める数 \(n\) のこと。時計盤でいえば 1 周の目盛の数にあたります。「12 を法として」は「12 で割った余りで考えて」という意味です。
合同 ごうどう 2 つの整数を法 \(n\) で割った余りが等しいこと。図形の合同(形と大きさが同じ)とは別の、整数の性質の用語です。
合同式 ごうどうしき \(a \equiv b \pmod{n}\) の形の式。等式と同じ感覚で足す・引く・掛けるの変形ができ、余りの計算を式変形で進められます。高校では数学A「整数の性質」で学びます。
倍数 ばいすう ある整数を整数倍した数。「差が法の倍数であること」が合同の定義です。
床除算 ゆかじょざん 商を小さい方の整数へ切り捨てる割り算のやり方。割る数が正なら、負の数を割っても余りが 0 以上になります。Python の // 演算子や Excel の INT 関数がこの方式です。
剰余演算子 じょうよえんざんし プログラミングで余りを求める % のこと。C・Java・JavaScript は商を 0 方向へ切り捨てる方式(余りの符号は割られる数と同じ)、Python・Ruby は床除算方式(余りの符号は割る数と同じで、法が正なら 0 以上)です。
繰り返し二乗法 くりかえしにじょうほう 2 乗を繰り返しながら余りを取り、指数を 2 のべき乗の和に分解して掛け合わせることで、大きなべき乗の余りを少ない掛け算で求める方法。二分累乗法・バイナリ法とも呼ばれ、RSA暗号などの実装で使われています。
余りによる分類
(剰余類)
あまりによるぶんるい(じょうよるい) 整数を「\(n\) で割った余り」でグループ分けする考え方。mod \(n\) の世界では、すべての整数が余り \(0\) 〜 \(n-1\) の \(n\) 種類に分類されます。偶数・奇数は 2 で割った余りによる分類です。
周期性 しゅうきせい べき乗の余りが、同じ並びを繰り返す性質。余りは \(n\) 種類しかないので必ずどこかで同じ余りに戻ります。一の位の問題(mod 10)で周期を見つけるのは受験の定番です。
互いに素 たがいにそ 2 つの整数の最大公約数が 1 であること。合同式の両辺を同じ数で割ってよい条件に登場します。

前提として理解しておくといいこと

このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
つまずいたら、この表の内容に戻って復習するのが近道です。

余りのある割り算(小学3〜4年)
  • \(17 \div 5 = 3\) 余り \(2\) の形の計算ができること
  • 「割る数 × 商 + 余り = 割られる数」の検算ができること
倍数・約数(小学5年)
  • \(24\) が \(12\) の倍数だとわかること
  • 最大公約数の意味を知っていること(合同式の割り算の条件「互いに素」で使います)
正負の数(中学1年)
  • 負の数を含む足し算・引き算・掛け算ができること(例:\(3 \times (-3) = -9\))
  • 数直線の上で \(-3\) が \(-2\) より小さい(左にある)とわかること
累乗・指数(中学1年〜高校 数学I)
  • \(3^{4} = 3 \times 3 \times 3 \times 3 = 81\) のように、右上の指数が「掛ける回数」を表すとわかること
  • 指数法則 \(a^{m} \times a^{n} = a^{m+n}\)・\((a^{m})^{n} = a^{mn}\) が使えること(繰り返し二乗法の根拠になります)
整数の割り算の等式(高校 数学A)
  • 整数 \(a\) を正の整数 \(n\) で割ると、\(a = nq + r\)(\(0 \le r < n\))の形にただ一通りに書けることを知っていること
  • 「余りで整数を分類する」考え方に触れたことがあること(偶数・奇数は 2 で割った余りによる分類です)

Excelで計算する方法

Excelファイルをダウンロード
式ごとにシートが分かれたExcelファイルです。貼り付け場所を気にせず、開いてすぐ使えます。
下の表を丸ごとコピーして、ExcelのA1セルに貼り付けるとそのまま使えます。
「a mod n(余り)」を求める表
割られる数 a -7
法(割る数)n 3
数学の余り(0 以上) =MOD(B1,B2)
商(床除算) =INT(B1/B2)
検算 n×商+余り =B2*B4+B3
C・Java方式の余り(0方向切り捨て) =B1-B2*TRUNC(B1/B2)
「合同判定 a ≡ b (mod n)」を求める表
整数 a 38
整数 b 14
法 n 12
差 a−b =B1-B2
差を n で割った余り =MOD(B4,B3)
判定(TRUEなら合同) =MOD(B4,B3)=0
「べき乗の余り(繰り返し二乗法)」を求める表
底 a 7
指数 k 100
法 n 13
aの1乗の余り =MOD(B1,B3)
aの2乗の余り(1つ上を2乗して余り) =MOD(B4^2,$B$3)
aの4乗の余り =MOD(B5^2,$B$3)
aの8乗の余り =MOD(B6^2,$B$3)
aの16乗の余り =MOD(B7^2,$B$3)
aの32乗の余り =MOD(B8^2,$B$3)
aの64乗の余り =MOD(B9^2,$B$3)
100=64+32+4 を組み合わせた余り =MOD(MOD(B10*B9,$B$3)*B6,$B$3)
貼り付けると、上の行(入力)を書き換えるだけで下の行が自動計算されます。
ExcelのMOD関数は、この計算機と同じ「数学の余り」(0 以上)を返します。負の数でも =MOD(-7,3) は 2 です。C・Java方式の余りが知りたいときは、商を0方向へ切り捨てるTRUNCを使った1つ目の表の最終行を使ってください。
1つ目の表は −7 を 3 で割る例で、余りは 2・商は −3 になります。
2つ目の表は 38 ≡ 14 (mod 12) の判定で、差 24 の余りが 0 になり TRUE(合同)と出ます。
3つ目の表は 7 の 100 乗を 13 で割った余りを繰り返し二乗法で求める表で、答えは 9 になります。「^」はべき乗の記号です。Excelの数値は約15桁までしか正確に扱えないため、法 n が 7 桁を超えるときは 2 乗した値が精度切れを起こします。その場合はこのページの計算機か Python を使ってください。

Googleスプレッドシートで計算する方法

Excelファイルをダウンロード
上のExcelファイルをダウンロードし、Googleドライブにアップロードして開くと、そのままスプレッドシートとして使えます。
下の表を丸ごとコピーして、GoogleスプレッドシートのA1セルに貼り付けるとそのまま使えます。
「a mod n(余り)」を求める表
割られる数 a -7
法(割る数)n 3
数学の余り(0 以上) =MOD(B1,B2)
商(床除算) =INT(B1/B2)
検算 n×商+余り =B2*B4+B3
C・Java方式の余り(0方向切り捨て) =B1-B2*TRUNC(B1/B2)
「合同判定 a ≡ b (mod n)」を求める表
整数 a 38
整数 b 14
法 n 12
差 a−b =B1-B2
差を n で割った余り =MOD(B4,B3)
判定(TRUEなら合同) =MOD(B4,B3)=0
「べき乗の余り(繰り返し二乗法)」を求める表
底 a 7
指数 k 100
法 n 13
aの1乗の余り =MOD(B1,B3)
aの2乗の余り(1つ上を2乗して余り) =MOD(B4^2,$B$3)
aの4乗の余り =MOD(B5^2,$B$3)
aの8乗の余り =MOD(B6^2,$B$3)
aの16乗の余り =MOD(B7^2,$B$3)
aの32乗の余り =MOD(B8^2,$B$3)
aの64乗の余り =MOD(B9^2,$B$3)
100=64+32+4 を組み合わせた余り =MOD(MOD(B10*B9,$B$3)*B6,$B$3)
Excelと同じ式(MOD・INT・TRUNC)がそのまま使えます。表を丸ごとコピーしてA1セルに貼り付け、入力を自分の数値に書き換えてください。

Pythonで計算する方法

a = -7
n = 3

# Pythonの % は、この計算機と同じ「数学の余り」(法が正なら 0 以上)を返す
print(a % n)                 # 2

# divmod は床除算の商と余りをまとめて返す(a = n × 商 + 余り)
quotient, remainder = divmod(a, n)
print(quotient, remainder)   # -3 2

# 合同判定: 38 ≡ 14 (mod 12) か(差が 12 の倍数かで判定)
print((38 - 14) % 12 == 0)   # True

# べき乗の余り: 7 の 100 乗を 13 で割った余り
# pow の3引数版は繰り返し二乗法で計算するため、巨大な指数でも一瞬で終わる
print(pow(7, 100, 13))       # 9

def c_style_mod(x, m):
    # C・Java・JavaScript の % と同じ結果(商を 0 方向へ切り捨てる方式)
    r = x % m
    if r != 0 and x < 0:
        r -= m
    return r

print(c_style_mod(-7, 3))    # -1
Pythonの % 演算子は数学の余りと同じで、割る数が正なら負の数でも 0 以上の値を返します(-7 % 3 は 2)。べき乗の余りは pow(底, 指数, 法) の3引数版を使うと、内部で繰り返し二乗法が働き、何万桁にもなるべき乗でも余りだけを高速に計算できます。C・Java・JavaScript の % と同じ結果が必要なときは、最後の関数のように商を 0 方向へ切り捨てる補正を入れます。

数式記述言語(LaTeX等)での書き方(コピペ可)

割り算の基本式(余りの定義)
a = n × q + r(0 ≦ r < n)
a = nq + r \quad (0 \le r < n)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>a</mi><mo>=</mo><mi>n</mi><mi>q</mi><mo>+</mo><mi>r</mi>
    <mo>,</mo>
    <mn>0</mn><mo>&#x2264;</mo><mi>r</mi><mo>&lt;</mo><mi>n</mi>
  </mrow>
</math>
a = n q + r, \ 0 <= r < n
{Quotient[a, n], Mod[a, n]}
q := floor(a/n); r := a mod n;
q = floor(a/n); r = mod(a, n);
a = nq + r (0 ≤ r < n)
合同式の定義(a ≡ b (mod n) とは)
a ≡ b (mod n)  ⇔  a − b = n × m
a \equiv b \pmod{n} \iff a - b = nm
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>a</mi><mo>&#x2261;</mo><mi>b</mi>
    <mspace width="0.3em"/>
    <mo>(</mo><mi>mod</mi><mspace width="0.3em"/><mi>n</mi><mo>)</mo>
    <mo>&#x21D4;</mo>
    <mi>a</mi><mo>&#x2212;</mo><mi>b</mi><mo>=</mo><mi>n</mi><mi>m</mi>
  </mrow>
</math>
a -= b (mod n) iff a - b = n m
Mod[a - b, n] == 0
(a - b) mod n = 0;
mod(a - b, n) == 0
a ≡ b (mod n)
掛け算と余りの関係(べき乗の余りの土台)
(a × b) mod n = {(a mod n) × (b mod n)} mod n
(a \times b) \bmod n = \{(a \bmod n)(b \bmod n)\} \bmod n
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mo>(</mo><mi>a</mi><mo>&#xD7;</mo><mi>b</mi><mo>)</mo>
    <mspace width="0.3em"/><mi>mod</mi><mspace width="0.3em"/><mi>n</mi>
    <mo>=</mo>
    <mo>{</mo>
    <mo>(</mo><mi>a</mi><mspace width="0.3em"/><mi>mod</mi><mspace width="0.3em"/><mi>n</mi><mo>)</mo>
    <mo>&#xD7;</mo>
    <mo>(</mo><mi>b</mi><mspace width="0.3em"/><mi>mod</mi><mspace width="0.3em"/><mi>n</mi><mo>)</mo>
    <mo>}</mo>
    <mspace width="0.3em"/><mi>mod</mi><mspace width="0.3em"/><mi>n</mi>
  </mrow>
</math>
(a * b) mod n = ((a mod n) * (b mod n)) mod n
Mod[a b, n] == Mod[Mod[a, n] Mod[b, n], n]
(a * b) mod n = ((a mod n) * (b mod n)) mod n;
mod(a*b, n) == mod(mod(a, n)*mod(b, n), n)
(a×b) mod n = ((a mod n)×(b mod n)) mod n
合同式の性質(両辺どうしを足す・引く・掛ける)
a ≡ b, c ≡ d (mod n) ⇒ a+c ≡ b+d, a−c ≡ b−d, a×c ≡ b×d (mod n)
a \equiv b,\ c \equiv d \pmod{n} \Rightarrow a + c \equiv b + d,\ a - c \equiv b - d,\ ac \equiv bd \pmod{n}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>a</mi><mo>+</mo><mi>c</mi><mo>&#x2261;</mo><mi>b</mi><mo>+</mo><mi>d</mi>
    <mo>,</mo>
    <mi>a</mi><mo>&#x2212;</mo><mi>c</mi><mo>&#x2261;</mo><mi>b</mi><mo>&#x2212;</mo><mi>d</mi>
    <mo>,</mo>
    <mi>a</mi><mi>c</mi><mo>&#x2261;</mo><mi>b</mi><mi>d</mi>
    <mspace width="0.3em"/>
    <mo>(</mo><mi>mod</mi><mspace width="0.3em"/><mi>n</mi><mo>)</mo>
  </mrow>
</math>
a + c -= b + d, \ a - c -= b - d, \ a c -= b d (mod n)
Mod[a + c, n] == Mod[b + d, n] && Mod[a - c, n] == Mod[b - d, n] && Mod[a c, n] == Mod[b d, n]
(a + c) mod n = (b + d) mod n;
mod(a + c, n) == mod(b + d, n)
a + c ≡ b + d (mod n)

ChatGPT に聞いて計算してもらう方法

あなたは数学(整数の性質)の計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。

次の3問を計算してください。
1. −7 を 3 で割った数学の余り(0 以上に取る)と、そのときの商
2. 38 ≡ 14 (mod 12) が成り立つか(差が 12 の倍数かどうかも示す)
3. 7 の 100 乗を 13 で割った余り(pow(7, 100, 13) を使う)

Pythonの %・divmod・pow(底, 指数, 法) を使って計算し、計算に使った式と実行結果の数値を示してください。

計算ドリル(演習問題)

このページの式を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。


使い方
  1. 1
    数値を入力
    計算したい数値を入力欄に入力します
  2. 2
    計算
    「計算する」ボタンを押します
  3. 3
    結果を確認
    計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
  DataChefの特徴
簡単・無料
無料で回数無制限の変換
専門知識不要、直感的で簡単な操作
会員登録不要
アクセス直後に利用可能
個人情報を登録することなく使用できます
安全・安心
通信を高度に暗号化
「ダウンロード」押下でファイルを自動削除
高速
ストレスのない快適な表示速度・変換速度
透かしなし
ウォーターマークなし
クレジット表記不要
商用利用可能
無料で商用利用可能
商用利用許諾の連絡も不要です