素因数分解
2以上の整数を素因数に分解します。360は2³ × 3² × 5で、一つずつ並べると2、2、2、3、3、5です。両方の形が同時に表示されるので、宿題の確認や掛け戻しに使えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 因数分解する整数
- 360
- 素因数
- 2, 2, 2, 3, 3, 5
素因数分解は、整数を素数の冪の積として書き直します。2以上の任意の整数nに対して、この機能は各素数とその指数、および昇順に並んだ素因数の平坦なリストを返します。結果はネットワーク呼び出し・乱数・モデル推論を一切伴わない決定論的な試し割りによるものです。宿題の確認、暗号関連の授業デモ、コーディング面接、あるいはCASを導入せずに機械可読な因数分解を必要とするパイプラインにご利用ください。
素因数分解が返すものと、2つの形式が重要な理由
1より大きいすべての整数は、順序を除いて一意の素因数の多重集合を持ちます。これが算術の基本定理です。コンパクト形式は繰り返す素数を指数の組にまとめるため、360は長い積ではなく 2^3 · 3^2 · 5^1 になります。
平坦形式は同じ因数分解を [2, 2, 2, 3, 3, 5] のような順序付きリストに展開したもので、因数を掛け戻したり、ふるいの処理に渡したり、UIで各素数を個別に表示したりするときに便利です。この機能は1回の応答で両方のビューを返します。元のnも反響されるため、呼び出し側は素数を指数で冪乗して掛け合わせ、往復の等価性を検証できます。
ロケール・浮動小数点の書式・サーバー側の時計に左右される要素は一切なく、因数分解が完了するまで整数演算のみが用いられます。
教育・工学・自動化における実用的な用途
教師や生徒は、宿題の確認、一意な因数分解の説明、手計算と機械オラクルの結果比較に素因数分解を用います。ソフトウェアエンジニアは、採点スクリプト、コーディングチャレンジの審判、p^e の積がnに等しいことを検証するプロパティテストにこの呼び出しを組み込みます。
データチームは、根基(radical)や omega(n) 型の指標、すなわち相異なる素数の数や素因数の総重複度を必要とすることがありますが、これらは因数分解を再実装せずに返された配列から導けます。セキュリティやCTFの訓練ラボは、小さなnが即座に因数分解される一方で大きな半素数はそうならない様子を示し、RSAの法が巨大でなければならない理由を補強します。
このツールは概念を教えるために意図的に安全整数に限定されており、完全な整数因数分解サービスのふりはしません。
活用例
宿題・個別指導の確認
生徒がnを送信し、提出前に返された素数と指数を自分の手書きの因数分解と比較します。
自動採点とコーディング面接
審判が応答の p^e を掛け合わせてnとの等価性を検証し、浮動小数点の雑音なしに指数の1つずれを捕らえます。
整数論の授業デモ
一意な因数分解をその場で示します。合成数・素数・素数の冪を選び、コンパクト形式と平坦形式を並べて表示します。
よくある質問
数の素因数分解とは何ですか?
その整数に掛け戻される素数の冪の一意な積です。例えば 12 = 2^2 · 3 で、ここでは factorization の組と平坦なリスト [2, 2, 3] として返されます。
この計算ツールはどのような入力を受け付けますか?
JavaScriptの安全整数の範囲内で2以上の整数nのみです。
factorization と factors の違いは何ですか?
factorization は各素数を指数と組にします({prime, exp})。factors はそれらの冪を素数の整列した多重集合に展開します。
このツールは暗号の法を因数分解しますか?
いいえ。 安全整数に対して試し割りを用い、過大なnは拒否します。教育・ツール・通常の整数向けであり、RSA規模の法向けではありません。
入力した数がすでに素数の場合はどうなりますか?
その数自身が指数1で表示されます。素数にはほかの因数がないためです。一覧も1つだけになるので、素数かどうかをひと目で確かめられます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/prime-factorization \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":360}'const res = await fetch("https://api.kit.forhosting.com/math/prime-factorization", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 360
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/prime-factorization",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 360
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/prime-factorization", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":360}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":360}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/prime-factorization", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 360
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.prime_factorization",
"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料金は成功リクエストごとに一律$0.002で、無効な入力は課金されずに拒否されます。
素因数分解が返すものと、2つの形式が重要な理由
factorization は整数フィールド prime と exp を持つオブジェクトの配列であり、factors は展開された昇順のリストです。
呼び出し方と受け付ける入力
値は2以上の有限な整数でなければなりません。任意のモードフラグはありません。出力は常にコンパクトな factorization と平坦な factors リストの両方を含みます。試し割りはまず2を取り除き、残りの余因数の平方根まで奇数の候補をたどるため、小さな素因数を持つ合成数は素早く終わり、素数のnは指数1の単一の組を返すだけです。単一の必須フィールド n を持つJSONオブジェクトを送ってください。整数はJSONの数値として、または同じ整数値に解釈できる数字のみの文字列として到着できます。真偽値・配列・オブジェクト・分数・NaN・Infinity・2未満の値は、明確なメッセージとともに invalid_input で拒否されます。JavaScriptの最大安全整数より大きい数は、ワーカーが用いるIEEE浮動小数点の倍精度で結果が正確に保たれるよう拒否されます。教室やAPIのデモでは、この tier-A の parse 経路が攻撃を想定していない暗号規模の法ではなく、360・1001・9876543210 のような中程度の合成数や安全整数から始めてください。検証に失敗しても前払い残高は消費されず、成功した因数分解だけが公表された基本料金$0.002で課金されます。
教育・工学・自動化における実用的な用途
ブラウザとAPIが同じ純粋関数を共有するため、無料のWeb UIで試作し、同一の契約を本番ワーカーに昇格できます。応答の形を一度文書化すれば、記号代数パッケージではなく安定したJSONの因数分解だけを必要とするSDK・ノートブック・ノーコード自動化で再利用できます。
技術的な質問
APIの費用はいくらですか。
成功リクエストは項目ごとに公表された基本料金$0.002です。無効な入力のエラーは課金されません。ブラウザ内ツールは対話的な利用のために無料のままです。