公約数計算
すべての整数を割り切る数を一覧にします。12、18、30の公約数は1、2、3、6で、最大公約数は6です。分数の約分や、物を同じ数ずつのグループに分けるときに役立ちます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 数値
- 12, 18, 30
- Gcd
- 6
- 共通因数
- 1, 2, 3, 6
- 数量
- 4
公約数とは、2つ以上の整数のすべてを割り切れる整数のことです。2つ以上の整数のリストを指定すると、この機能はすべての整数に共通する正の約数を昇順に並べたリストを、最大公約数および正規化された入力値とともに返します。計算は純粋な整数演算で、ユークリッドの互除法による最大公約数の算出と、その約数の列挙のみを行い、ネットワーク呼び出し、乱数、モデル推論は一切使用しません。分数の約分、宿題の確認、均等なグループ分けの計画、機械可読な共通約数リストを必要とするパイプラインへの入力などにご利用いただけます。無効な入力は課金されずに拒否されます。
公約数とは何か、結果はどのように構成されるか
ある整数の約数とは、その整数を余りなく割り切れる整数のことであり、複数の整数の公約数とは、そのすべてを割り切れる約数のことです。重要な数学的なポイントは、任意の整数集合の公約数は、その最大公約数の約数と正確に一致するため、各入力を個別に因数分解する必要がないという点です。
この機能はまずユークリッドの互除法で入力値の絶対値から最大公約数を求め、次にその最大公約数の約数を平方根まで対で列挙し、昇順に並べ替えます。例えば、12、18、30 の最大公約数は 6 であり、共通する約数はちょうど [1, 2, 3, 6] となります。
受け付ける入力、エッジケース、エラー
負の整数も問題ありません。符号は整除性に影響しないためです。また、少なくとも1つの値がゼロ以外であればゼロも許可されます。
ゼロと n の公約数は単に n の約数となるためです。バリデーション失敗時にプリペイド残高が消費されることはありません。オプションのフラグはありません。
出力には常に最大公約数と完全な昇順の約数リストが含まれます。
教育、エンジニアリング、自動化における実用的な用途
教師や学生は、分数の約分、公分母の算出、課題提出前の手計算の検証に公約数を活用しています。ソフトウェアエンジニアは、コンピュータ代数システムを導入せずに複数の列の共通約数構造を必要とする採点スクリプト、プロパティテスト、データクリーニング処理にこの呼び出しを組み込んでいます。
関連する用途としては、単一の整数には約数リスト機能を、完全な約数リストではなく集計値だけが必要な場合には最大公約数・最小公倍数ツールと組み合わせてご利用ください。
活用例
分数と比の約分
分子と分母の公約数を列挙して有効な約分の手順をすべて洗い出し、最後に最大公約数で割って既約分数にします。
均等なグループ分けとバッチ処理
クラスの人数、在庫ロット、ケーブルの長さなど、複数のグループ数を均等に割り切れるチームサイズを、昇順の共通約数リストからすべて見つけます。
宿題と採点の確認
学生は手計算で求めた公約数を返されたリストと比較し、採点者は浮動小数点の誤差を気にせず配列の完全一致を検証できます。
よくある質問
公約数とは何ですか?
2つ以上の整数のすべてを割り切れる整数のことです。例えば 12、18、30 の公約数は 1、2、3、6 であり、このツールでは昇順のリストとして返されます。
公約数と最大公約数の関係は?
任意の整数集合の公約数は、その最大公約数の約数と正確に一致します。このツールはまず最大公約数を計算し、次にその約数を列挙して、両方を返します。
入力の順序や符号は結果に影響しますか?
いいえ。 整除性は符号や順序に左右されません。-48、180、0 は 48 と 180 と同じ約数を共有します。出力リストは常に昇順に並べ替えられます。
公約数は同じ大きさのグループ分けにどう役立ちますか?
公約数はどれも、すべての数量を余りなく分けられるグループの大きさです。12個、18個、30個なら1、2、3、6個ずつに分けられ、個数の4が選べる大きさの数を示します。
数の1つが0でも計算できますか?
ほかに0でない数が少なくとも1つあれば計算できます。0はどの整数でも割り切れるため、0と別の数の公約数は、その数の約数と同じになります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/common-factor \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"numbers":[12,18,30]}'const res = await fetch("https://api.kit.forhosting.com/math/common-factor", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"numbers": [
12,
18,
30
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/common-factor",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"numbers": [
12,
18,
30
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/common-factor", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"numbers":[12,18,30]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"numbers":[12,18,30]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/common-factor", 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,
30
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.common_factor",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
APIの料金は、成功したリクエスト1件につき一律 $0.002 です。
公約数とは何か、結果はどのように構成されるか
レスポンスには4つのフィールドが含まれます。numbers は正規化された整数リスト、gcd は最大公約数、common_factors は共通する正の約数の昇順配列、count はその要素数です。すべての処理が決定的な整数演算であるため、同じ入力からは常にバイト単位で同じ出力が得られ、結果をキャッシュしたり、テストでスナップショット化したり、無料のブラウザツールと有料APIの間で比較したりするのに安全です。
受け付ける入力、エッジケース、エラー
必須フィールド numbers に2つ以上の整数の配列を格納したJSONオブジェクトを送信してください。各項目はJSONの整数、または同じ整数値にパースされる数字のみの文字列を指定できるため、フォーム送信もクライアント側の変換なしで処理できます。エイリアス values、integers、list も使用可能です。配列がない、または2項目未満の場合、いずれかの項目が真偽値、オブジェクト、小数、NaN、Infinity の場合、いずれかの絶対値がJavaScriptの最大安全整数を超える場合、すべての値がゼロの場合(すべての整数はゼロを割り切るため、共通集合が無限になってしまいます)は、invalid_input エラーで拒否されます。課金されるのは成功した計算のみで、公開されている基本料金は1件につき $0.002 です。
教育、エンジニアリング、自動化における実用的な用途
教室をチームに分ける、在庫をロットに分ける、材料を同じ長さに切り分けるといった、物を均等なグループに分ける文章題は、関係する数量の公約数を列挙する問題に直接帰着でき、count フィールドを見れば有効なグループサイズの数がすぐにわかります。レスポンスは安定したJSONであるため、形式を一度文書化すれば、SDK、ノートブック、ノーコード自動化にそのまま利用できます。ブラウザツールとAPIは同じ純粋関数をインポートしているため、無料で対話的にプロトタイプを作成し、後から同一の契約を本番環境のワーカーに移行できます。
技術的な質問
この計算ツールはどのような入力を受け付けますか?
2つ以上の整数の配列で、JSONの数値または数字のみの文字列で指定できます。負の値と1つのゼロは許可されます。整数以外の値、2項目未満の配列、すべてゼロの入力は invalid_input エラーとなります。
APIの料金はいくらですか?
成功したリクエストは、公開されている基本料金として1件につき $0.002 がかかります。無効な入力のエラーには課金されず、ブラウザ内のツールは対話的な利用であれば無料のままです。