互いに素チェッカー
8と15は互いに素で、最大公約数は1です。負の数や0を含む任意の2つの整数を入れると、正確な最大公約数と、互いに素かどうかのはっきりした答えが分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 1つ目の整数
- 8
- 2つ目の整数
- 15
- Gcd
- 1
互いに素チェッカーは基本的な数論の問いに答えます:2つの整数が共有する正の公約数は1だけか?整数aとbを指定すると、このツールは最大公約数と、そのgcdがちょうど1のときにtrueとなる真偽値のcoprimeフラグを返します。エンジンは絶対値に対する古典的なユークリッドの互除法を使うため、結果は正確で決定的、浮動小数点のずれもありません。通信を呼び出すことも、ランダム性をサンプリングすることも、時計に依存することも一切ありません。宿題やRSA鍵の直感的理解、分数の約分の確認、コンテスト対策にはブラウザで無料でご覧ください。
互いに素の意味と結果の見方
2つの整数は、正の公約数が1のみのとき、互いに素あるいは相対的に素です。同じことですが、aとbのgcdは1です。古典的な例には、約数が1を超えて重ならない8と15や、7を共有する14と21があります。
aが0でbが0という特殊なケースは、この設定でgcd(0,0)が未定義であり互いに素かどうかを決定できないため拒否されます。対照的に、0と5は有効です:gcdは5でcoprimeはfalseです。負の入力は許可され絶対値を通じて整理されます。
これはgcdが非負であるという通常の数学的慣習に一致します。ペアごとのgcdテストではなく1つの整数の素因数が必要な場合は、素因数分解ツールをお使いください。このページが答えるのは2つの整数の互いに素の判定とgcdの問いのみです。
入力の読み取り方とユークリッドの互除法の正確さの保ち方
先頭の任意のプラス・マイナス記号は許可されますが、埋め込まれた空白、16進数のプレフィックス、指数表記は不正なセルが誤ったフラグにすり替わることを防ぐため拒否されます。エンジンはJavaScriptの安全な整数の範囲内にとどまり、これは授業の問題、プログラミングコンテスト、そして法の逆元や簡約された比についてのほとんどの応用チェックには十分すぎるほどです。
内部では、絶対値がユークリッドの互除法に渡されます:余りが0になるまで大きい方の剰余のペアを繰り返し置き換え、最後の0でない剰余がgcdです。この手順は何世紀も前から使われており、通常の入力に対して数回の割り算しか必要とせず、決して近似しません。僅差の整数を誤って互いに素と判定してしまうような浮動小数点のステップはありません。
互いに素の判定が学習・暗号の直感・コードで果たす役割
学生は、分数を約分するとき、オイラーのトーシェントがnと互いに素なn以下の整数を数えることを証明するとき、そして係数と法が互いに素であるためにまさに法の逆元が存在するときに互いに素なペアに出会います。教師は、gcdを隠す不透明な電卓アプリを信用せずにワークシートの解答例を生成できます。
開発者は、同じ契約を使って線形合同法生成器を構築する前に2つのシード値が相対的に素であることを検証したり、教育デモでRSA風のeとphiの関係を事前確認したり、データパイプラインで分数正規化のステップをゲート化したりします。コンテストの練習では、表をダウンロードせずに解答を確認できるよう、gcdと互いに素の判定の高速なオフラインソースがよく必要とされます。
1つの整数の背後にある素数べきが必要な場合は素因数分解と、ペアごとの約数ではなくランクが必要な場合は第n番目の素数ツールとも組み合わせてください。
活用例
分数の約分と既約分数
比を簡約する前に分子と分母がすでに互いに素かを確認したり、学生の約分した分数のgcdが1であることを確認したりします。
法の逆元の前提条件
法算術のデモやコンテストの解答で逆元の存在が保証されるよう、係数と法が互いに素であることを検証します。
決定的なテストフィクスチャ
静的テーブルを埋め込まずに、単体テストやプロパティチェック、CIアサーション向けに再現性のある互いに素・非互いに素のペアを生成します。
よくある質問
aとbの両方が0の場合はどうなりますか?
ここではgcd(0,0)は未定義であり、両方の入力が0の場合、互いに素かどうかを決定できません。
負の整数は許可されますか?
はい。 符号は受け付けられ、gcdは絶対値に対して計算されるため、gcdは常に非負の整数であり、coprimeはその値だけに依存します。
このアルゴリズムはランダム化されていますか?
いいえ。 決定的なユークリッドの互除法を使います。同じペアa、bは常に同じgcdと同じcoprimeフラグを返します。
素因数分解とはどう違いますか?
素因数分解は1つの整数を素数のべきに分解します。このツールは2つの整数を受け取り、そのgcdを返し、そのgcdがちょうど1のときにcoprimeをtrueに設定します。
互いに素かどうかは何の役に立ちますか?
分数の約分、合同式の逆元があるかの確認、オイラーのトーシェント関数の学習に使います。分子と分母が互いに素なら、その分数はすでに既約分数です。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/coprime-checker \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":8,"b":15}'const res = await fetch("https://api.kit.forhosting.com/numth/coprime-checker", {
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/numth/coprime-checker",
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/numth/coprime-checker", 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/numth/coprime-checker", 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": "numth.coprime_checker",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
検証パイプラインや採点スクリプト、再現性のある互いに素の判定が必要な教育デモを自動化する場合は、成功したリクエストごとに$0.002のAPIをご利用ください。
互いに素とは何か、レスポンスに含まれる内容
このチェッカーは、解析済みの整数aとb、正のgcd、そしてそのgcdがちょうど1のときのみtrueとなる真偽値のcoprimeフィールドを返します。契約は厳格です:フィールドの欠落、非整数、分数、指数表記、安全な整数範囲外の値はすべてinvalid_inputと明確なメッセージで失敗します。
入力の読み取り方とユークリッドの互除法の正確さの保ち方
優先されるフィールドはJSON整数としてのaとbですが、10進数文字列、そして1つ目の値にxまたはm、2つ目の値にyまたはnというエイリアスも受け付けるため、フォームやスプレッドシート、クエリ文字列が1つの契約を再利用できます。
互いに素の判定が学習・暗号の直感・コードで果たす役割
このページでは処理はすべてブラウザ内で完結し、API経由では成功した照会1件ごとに$0.002かかり、検証に失敗した場合は課金されず、レスポンスを返した後は何も保存されません。無料のインタラクティブな検証と、同一の結果を返す有料APIというこの分離はKITのtier Aカタログ全体の方針と一致しており、教室でのデモから自動パイプラインへ、数学的な結果を変えることなく移行できます。
技術的な質問
互いに素チェッカーの料金は?
このページのブラウザ上では無料です。API経由では成功したリクエストごとに$0.002かかり、無効な入力には課金されません。