GCD・LCM 計算ツール
12と18を入力すると、最大公約数6と最小公倍数36が分かります。最大20個の数もまとめて計算できます。分数の約分や通分、繰り返す予定の周期合わせに便利です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 数値
- 12, 18
- 最大公約数
- 6
- 最小公倍数
- 36
2 から 20 個の整数の配列の最大公約数と最小公倍数を計算し、正規化した入力を gcd・lcm と並べて返します。
GCD と LCM の計算方法
2 つの値の最大公約数はユークリッドの互除法 — b が 0 になるまで (a, b) を (b, a mod b) に繰り返し置き換える — から得られ、配列全体の gcd はその演算を各要素にわたって左から右に適用したものです。
1 組の最小公倍数は abs((a / g) * b)(g はその gcd)として計算され、中間の値を小さく保つために掛ける前に割ります。配列の lcm も同様に全要素にわたって畳み込まれます。いずれかの要素が 0 なら lcm は 0 であり、gcd(0,0) は未定義であるためすべて 0 の配列は拒否されます。
応答は numbers(正規化した入力)・gcd・lcm を返しますので、例の [12, 18] は gcd 6 と lcm 36 を生みます。
正規化・上限・安全な整数
各要素はまず Math.trunc と Math.abs で強制変換されますので、符号と小数部分は捨てられます。-12.9 は計算の前に 12 になり、正規化された値が返される numbers 配列に現れます。配列は 2 から 20 個の要素を持たなければならず、各要素は有限な数でなければならず、いずれの絶対値も 1e15 を超えてはなりません。
活用例
分数と比の簡約
分子と分母をその gcd で割ることで、分数や比を既約にします。
予定の整合
最大 20 個の値にわたって周期の lcm を取ることで、繰り返しの周期がいつ一致するかを見つけます。
よくある質問
いくつの数値を渡せますか?
1 回の呼び出しで 2 から 20 個の整数です。gcd と lcm は配列全体にわたって対ごとに畳み込まれます。
負数と小数はどう扱われますか?
各値は切り捨てられ絶対値にされます(Math.trunc の後 Math.abs)ので、-12.9 は計算の前に 12 になります。
一度にいくつの数を入力できますか?
2個から20個までです。リスト全体をまとめて計算するので、2つずつ手で組み合わせなくても、集合全体の最大公約数と最小公倍数が一度に分かります。
数の中に0があるとどうなりますか?
0はどの数の倍数でもあるため、最小公倍数は0になります。すべてが0のリストは、最大公約数が定まらないので受け付けません。
最小公倍数で周期がそろう時期を知るには?
繰り返す周期の長さを、たとえば日数で入力します。最小公倍数が、すべての周期が再びそろう最初の時点です。最大20個の周期まで同時に扱えます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/gcd-lcm \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"numbers":[12,18]}'const res = await fetch("https://api.kit.forhosting.com/dev/gcd-lcm", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"numbers": [
12,
18
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/gcd-lcm",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"numbers": [
12,
18
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/gcd-lcm", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"numbers":[12,18]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"numbers":[12,18]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/gcd-lcm", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"numbers": [
12,
18
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.gcd_lcm",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items | 20 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
GCD と LCM の計算方法
dev.gcd_lcm は numbers 配列を受け取り、対ごとに畳み込みます。
正規化・上限・安全な整数
LCM は急速に増大するため、結果は Number.MAX_SAFE_INTEGER と照合され、その範囲を超えて計算された lcm は静かに誤った浮動小数点数の代わりに型付きの invalid_input エラーを返します。あらゆる違反 — 配列でないもの、要素が少なすぎるか多すぎるもの、非有限の要素、範囲外の大きさ、すべて 0 の集合 — は畳み込みの前または途中で、問題を示すメッセージとともに invalid_input を送出しますので、呼び出し側はきれいで捕捉可能な失敗を得ます。
再利用できる決定的な算術
GCD と LCM は日常的な作業を支えます。分数を既約にすること、共通の分母を見つけること、繰り返しの予定やタイルの寸法を揃えること、比を簡約することです。2 個を超える数値を渡すことも完全に対応しています — 畳み込みは 1 回の呼び出しで最大 20 個を扱います — ので、対ごとのリクエストを連鎖させる代わりに集合全体を一度に簡約できます。
連携の活用例
整数論の一括処理
多数の整数の集合に対して API を呼び出し、ローカルの数学ライブラリなしで gcd と lcm の列を追加します。
技術的な質問
サイズの上限はありますか?
いずれの要素も大きさが 1e15 を超えてはならず、MAX_SAFE_INTEGER を超える LCM は誤った浮動小数点数の代わりに invalid_input を返します。
すべて 0 を渡すとどうなりますか?
拒否されます。gcd(0,0) は未定義ですので、すべて 0 の配列は型付きの invalid_input エラーを返します。
決定的で無料ですか?
はい。同じ配列は常に同じ結果を生みます。ブラウザ widget は無料で、API は成功したタスクのみを $0.002 で課金します。