最大公約数計算
48と18の最大公約数は6で、両方の約数の一覧に共通する最大の数です。符号付きの数や0を含む2つの整数を入力すると、分数の約分や同じ箱への詰め分け、タイル選びに使える正確な答えが分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- A
- 48
- B
- 18
- Gcf
- 6
2つの整数の最大公約数とは、両方を割り切れる最大の整数のことで、分数の約分、数量の等しいグループへの分割、床タイルのサイズ決め、コード内の比率の単純化など、あらゆる場面に登場します。この機能は、数学者が二千年以上使い続けてきたユークリッドの互除法で最大公約数を計算し、1つの整数を返します。正・負・ゼロの整数を、数値または厳密な数値文字列として2つ送信すれば、その最大公約数が返ります。整数でない入力は明確なエラーで拒否されます。
最大公約数とは何か
2つの整数、たとえば 48 と 18 を考えてみましょう。48 を割り切れる数は 1、2、3、4、6、8、12、16、24、48 で、18 の約数は 1、2、3、6、9、18 です。共通する約数は 1、2、3、6 で、その最大値である 6 が最大公約数、gcf(48, 18) = 6 と書きます。
約数を列挙する方法は小さい数には有効ですが、まったくスケールしません。15桁の整数を因数分解するのは実際に困難です。最大公約数計算機は因数分解を完全に回避します。a と b の任意の公約数は、大きい方を小さい方で割った余りも割り切れる、という一つの観察に基づくユークリッドの互除法を使います。
大きい方の数をその余りに置き換えると、すべての公約数を保ったまま問題が一歩ごとに小さくなり、一方がゼロになったとき他方が答えになります。計算全体は、JavaScript が正確に表現できる最大の整数でも、せいぜい数十ステップで済み、結果は常に正確です。浮動小数点も近似もありません。
入力、符号、ゼロ、エラー
文字列は、値がフォームやテキストファイルから来る場合に便利です。最大公約数は整数に対してのみ定義されるためです。符号は関係ありません。 ある数の約数はその反対数も割り切るため、gcf(-48, 18) は gcf(48, 18) と等しく、アルゴリズムは絶対値で動作します。
ゼロは正当な入力で、正確な意味を持ちます。gcf(17, 0) は 17 です。すべての整数はゼロを割り切り、17 の最大の約数は 17 自身だからです。
ただし両方がゼロの場合は拒否されます。すべての整数がゼロを割り切るため、最大のものが存在しないからです。絶対値の上限は 9007199254740991 で、これは JavaScript が正確に表現できる最大の整数です。
これより大きい値は正確に扱えないため拒否されます。
活用場面と料金
最大公約数は、その名前が示す以上に頻繁に現れます。分数を既約にするのは、分子と分母をその GCF で割ることです。出荷品を余りなく同一の箱に分けること、長方形の床を切断なしで覆う最大の正方形タイルを選ぶこと、レスポンシブレイアウトでアスペクト比を単純化することは、どれも違う装いの同じ問いです。
コードの中では、スケジューラ、ハッシュ関数、暗号ルーチンの内部に現れます。この機能は意図的に最小限で、約数そのものだけを返すため、それを消費するあらゆるものと綺麗に組み合わせられます。ユークリッドの互除法の全割り算ステップ、ベズー係数、あるいは最小公倍数も必要な場合は、兄弟機能がそれらをカバーしています。
グローバルエッジ上で実行され、応答後に何も保存されません。同じモジュールがこのページの無料計算機を動かしているため、パイプラインに組み込む前に、どんな結果でも手作業で検証できます。
活用例
分数を既約にする
分子と分母をその最大公約数で割って、1回の呼び出しで 48/18 を 8/3 に約分します。
数量を等しいグループに分ける
2つの在庫数量を余りなく正確に割り切れる、最大の同一ロットサイズを見つけます。
レイアウトエンジンで比率を単純化する
1920x1080 のようなピクセル寸法を、保存や表示の前にそれが表す 16:9 の比率に変換します。
よくある質問
数値の符号は関係ありますか?
いいえ。 最大公約数は絶対値に対して計算されるため、gcf(-48, 18) と gcf(48, 18) はどちらも 6 です。
片方の数をゼロにできますか?
はい。 gcf(a, 0) は |a| です。両方がゼロの場合は、gcf(0,0) が定義されないため拒否されます。
整数はどのくらい大きくできますか?
絶対値で 9007199254740991 までです。これは正確に表現できる最大の整数です。これより大きい値は近似計算せず拒否されます。
呼び出し後に何か保存されますか?
いいえ。 2つの整数は処理されて破棄され、最大公約数のみが返されます。
約数を書き出して最大公約数を求めるには?
それぞれの数の約数をすべて書き出し、共通するもののうち最大のものを選びます。48と18なら共通の約数は1、2、3、6なので答えは6です。大きな数では手間がかかるため、この計算機はユークリッドの互除法を使います。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/gcf \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":48,"b":18}'const res = await fetch("https://api.kit.forhosting.com/math/gcf", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 48,
"b": 18
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/gcf",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 48,
"b": 18
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/gcf", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":48,"b":18}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":48,"b":18}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/gcf", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a": 48,
"b": 18
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.gcf",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_abs | 9007199254740991 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
APIに応答するコードとまったく同じものが、このページのブラウザ上で無料で動作します。
入力、符号、ゼロ、エラー
このエンドポイントは a と b の2つの必須フィールドを受け付けます。それぞれ整数である必要があり、1071 のような JSON 数値、または "-252" のような厳密な整数を表す数値文字列を指定できます。2.5 のような小数、分数、真偽値、数値でないテキストは、原因となったフィールド名を示す invalid_input エラーで拒否されます。
活用場面と料金
料金は1リクエストあたり $0.002 で、単位ごとの追加料金はありません。同一のリクエストには常に同一の回答が返ります。
技術的な質問
料金はいくらですか?
1リクエストあたり $0.002 で、単位ごとの追加料金はありません。このページのブラウザ上では無料で実行できます。
どのような入力が受け付けられますか?
a と b の2つの整数で、JSON 数値または厳密な整数を表す数値文字列として指定します。それ以外は invalid_input エラーで拒否されます。