互いに素判定
8と15はどちらも素数ではありませんが、共通の約数が1だけなので互いに素です。2つの整数を入力すると、最大公約数と互いに素かどうかをはっきり示します。符号は無視します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- A
- 8
- B
- 15
- Gcd
- 1
2つの整数は、1より大きい公約数を共有しないとき互いに素です。言い換えると、最大公約数がちょうど1です。この判定器は整数の対を受け取り、絶対値にユークリッドの互除法を適用し、正の gcd と、その gcd が1のときだけ true になる真偽値を返します。問題用紙、既約分数、またはモジュラ逆元の前提が、2つの整数が互いに素かを問うときにご利用ください。
互いに素の意味と、gcd が決める判定
2つの整数は、正の公約数が1だけのとき互いに素です。後の数論の教科書では coprime とも呼ばれます。これは a と b の gcd が1であるという同じ主張です。
8と15は教室の例です。8の正の約数は1、2、4、8、15の正の約数は1、3、5、15で、共通するのは1だけなので対は互いに素です。14と21は対比です。 どちらも7で割り切れるため、どちらも素数でなくても互いに素ではありません。
ここで使う恒等式は初等的で厳密です。符号が答えを変えないよう絶対値を取り、その非負整数をユークリッドの互除法に渡し、最後の0でない余りを最大公約数として読みます。0と5は有効な対で gcd は5なので旗は false です。
0と1は有効な対で gcd は1なので旗は true です。0と0は、この契約では 0 と 0 の gcd が未定義であり相対的な素性を決められないため拒否されます。このページは互いに素判定の検索に答えます。
1つの整数を素因数分解することも、比 a コロン b を約分することもせず、それらは別ページの隣接する問いです。
互いに素の判定が役立つ場面
学習者は、分数がすでに既約であるとき、係数と法が1より大きい因数を共有しないためにモジュラ逆元が存在するとき、問題用紙が与えられた2整数が互いに素かを問うときに、互いに素な対に出会います。教員は gcd を隠す不透明な電卓を信じずに解答キーを作れます。
競技練習では、表をダウンロードせずに解を確認できる、gcd と互いに素のオフラインな速報源がしばしば必要です。教室例は意図して組んでください。実装は純粋な parse の tier A なので、モデルも外向き通信も数学経路の時計もありません。
テストでは gcd と真偽値を固定してください。このページは、互いに素計算機、2数が互いに素か、gcd が1かの判定を探す方を対象とし、素因数分解ツールでも比の約分器でもありません。
活用例
既約分数の確認
分数をすでに約分済みとして受け入れる前に、分子と分母が1より大きい公約数を共有していないことを確認します。
モジュラ逆元の前提条件
係数と法が互いに素であることを確かめ、モジュラ算術の演示や競技解答で逆元の存在を保証します。
よくある質問
2つの整数はいつ互いに素ですか?
1より大きい公約数を共有しないときです。これは gcd(|a|,|b|) が1であることと同じです。
a と b がともに 0 だとどうなりますか?
ここでの gcd(0,0) は未定義であり、両方の入力が 0 のときは相対的な素性を決められません。
14と21は互いに素ですか?
互いに素ではありません。どちらも7で割り切れるため、最大公約数は1ではなく7です。答えを決めるのは2つの数が共通の約数を持つかどうかで、それぞれが素数かどうかではありません。
負の数でも判定できますか?
できます。最大公約数を求める前に符号を取り除くので、−8と15は8と15と同じ答えになり、互いに素と判定されます。
片方だけが0のときはどうなりますか?
もう一方が0でなければ判定できます。0と1は互いに素ですが、0と5は最大公約数が5なので互いに素ではありません。両方とも0の場合は判定できません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/relatively-prime \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":8,"b":15}'const res = await fetch("https://api.kit.forhosting.com/math/relatively-prime", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 8,
"b": 15
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/relatively-prime",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 8,
"b": 15
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/relatively-prime", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":8,"b":15}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":8,"b":15}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/relatively-prime", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a": 8,
"b": 15
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.relatively_prime",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
整数でない値と、未定義の対である 0 と 0 は invalid_input で失敗し、課金されません。成功した API 要求は $0.002 です。
互いに素の意味と、gcd が決める判定
真偽値 relatively_prime は、その余りが1であるときに限り true です。
入力契約、応答の形、整数の検証
両方の入力が0であることは唯一の数学的拒否で、処理系は gcd を捏造せずに例外を投げます。負の入力は許され、絶対値で還元されます。gcd は非負であるという通例に沿い、マイナス8と15はなお互いに素です。必須の整数 a と b を持つ JSON 本体を送ってください。各欄は JSON 整数でも、先頭のプラスまたはマイナスが任意の十進の整数文字列でも構いません。a には別名 first と x、b には second と y を受け付けるので、フォーム、表計算、クエリ文字列が一つの契約を再利用できます。欠落欄、空文字、分数、埋め込み空白、指数表記、無限大、安全整数範囲外の値は invalid_input で失敗し、問題の欄を指名します。それらの失敗は課金されません。成功時は解析済み整数 a と b をエコーし、gcd を非負整数として報告し、その gcd が1のときちょうど relatively_prime を true にし、絶対値の gcd が1であるという恒等式を言い直す短い formula 文字列を含めます。無料のブラウザ実行器は同じ同型の solve 関数を実行するので、手元でご覧になる結果は API が返す結果です。成功した API 要求は公開済みの基本料金 $0.002 が単位 item で課金されます。
互いに素の判定が役立つ場面
8と15は gcd 1 と relatively_prime true、21と35は gcd 7 と relatively_prime false、3.5 と 9 は非整数の invalid_input 経路を示します。invalid_input を返す失敗タスクはプリペイド残高を消費しません。API 料金は成功1件あたりの定額 $0.002 のままです。
連携の活用例
決定的なテスト用 fixtures
静的な表を埋め込まずに、単体テスト、性質検査、CI の断言向けに、再現可能な互いに素な対とそうでない対を生成します。
技術的な質問
いずれかの入力が整数でないとどうなりますか。
タスクは invalid_input で失敗し、欄を指名します。分数、指数表記、空文字、非数値は拒否され、課金されません。
負の整数は許されますか。
はい。符号は受け付け、gcd は絶対値で計算します。したがって gcd は常に非負整数であり、relatively_prime はその値だけに依存します。
互いに素判定の料金はいくらですか。
ブラウザの用具は無料です。API 要求は成功1回あたり $0.002 の KIT プリペイド残高を使い、不正な入力は課金されません。