最小素因数計算機
入力した数を割り切る最小の素数と、割った後に残る数を求めます。84の最小素因数は2で、余因数は42です。素因数が数そのものと等しければ、その数は素数です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 84
- 最小の素因数
- 2
- 余因子
- 42
整数の最小素因数とは、その数をちょうど割り切る最小の素数です。素数であればその因数は数自身であり、合成数であれば素因数分解に現れる最初の素数であり、素数でないことの最も安価な証明書でもあります。宿題の確認、プログラミング課題、データ監査が、完全な素数べき展開を要求せずに明確な答えを得られます。
最小素因数とは何か、本ツールが返すもの
1 より大きい任意の整数 n は算術の基本定理により一意の素因数多重集合を持ち、その素数の中には必ず最小のものがあります。その値を最小素因数と呼び、数論の表やプログラミングコンテスト問題ではしばしば SPF と略されます。
n が素数のとき SPF は n、偶数のとき SPF は常に 2、より大きな素数の積のとき SPF は順序付き試し割りで n を割る最初の素数です。本機能はその問いだけに答えます。すべての素数べきを列挙せず、オイラーのトーティエントも計算せず、数千ビット級の整数の素数証明書も主張しません。
決定的試し割りアルゴリズムの仕組み
エンジンはまず 2 と 3 による整除を確認します。偶数倍と 3 の倍数は日常入力を占め、定数時間で解決するからです。残りの候補は 5 から始まる 6k±1 形の 6 ステップ車輪を歩き、2 または 3 で割り切れる整数を飛ばしつつすべての素数に到達します。
候補が n を割った瞬間、その候補が最小素因数として返されます。候補は昇順に試されるため、それ以上の探索は不要です。ループが n の整数平方根に達しても約数が見つからなければ n 自身が素数であり、自身の最小素因数として返されます。
算術は公開された安全整数範囲内で内部的に BigInt を使い中間積を正確に保ち、結果は通常の JavaScript 数値として応答に直列化されます。この経路にランダムな Miller–Rabin 証人リスト、壁時計シード、ネットワーク表はありません。
最悪時の作業量は素数や大きな因数を持つ半素数で n の平方根に比例し、教室規模や安全整数の合成数には十分です。
最小素因数計算機が実務フローに収まる場所
学生と教師は最小素因数計算機を使い、宿題を検証し、最初の障害素数を示して素数主張が失敗する理由を説明し、完全素因数分解の前に直感を育てます。
アプリケーション開発者は、偶奇の剥離、より重い手法の前の Pollard 風試し割り、明らかに合成な設定値を bare false ではなく具体的な素数で拒否するなど、パイプラインが最小因数だけを必要とするときに呼び出します。
データ技術者は素数形であるべき数値列をゲートし、SPF が値自身より小さい値は合成として監査ログに因数を残し、完全な因数リストは展開しません。検索意図が厳密に「n の最小素因数は何か」であるときに本ツールを選び、すべての素数べき、巨大多倍長整数の素数証明書、独自証人リストの確率的検定が必要な場合は避けてください。
活用例
宿題と授業デモ
学生の答えを割る最小素数を示し、合成数の誤りを単なる「不正解」ではなく具体的な素数で説明します。
パイプラインでの素早い合成証明
素数らしくあるべき設定値や ID を拒否・フラグし、最初の障害素因数を監査ログへ返します。
重い素因数分解前の事前確認
コファクターがまだ大きいときだけ完全素因数分解を呼ぶスクリプトで、先に最小素因数を剥がします。
よくある質問
素数の最小素因数は何ですか?
その数自身です。より小さい素数で割り切れなければ、素数は自分自身が最小の因数となり、余因数は1で、結果は素数と表示されます。
偶数の最小素因数は必ず2ですか?
はい。偶数はすべて2で割り切れ、2は最小の素数なので、探索はすぐに終わります。余因数はちょうどその数の半分です。
どのように探していますか?
まず2と3で試し、その後は5から始まる6k±1の形の候補だけを小さい順に調べます。最初に割り切れたものが答えで、平方根を超えれば素数です。
素因数分解をすべて表示しますか?
いいえ。表示するのは最小の素因数と余因数だけです。素数べきの一覧が必要な場合は、素因数分解用のツールを使ってください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/smallest-prime-factor \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":84}'const res = await fetch("https://api.kit.forhosting.com/numth/smallest-prime-factor", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 84
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/smallest-prime-factor",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 84
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/smallest-prime-factor", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":84}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":84}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/smallest-prime-factor", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 84
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.smallest_prime_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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
本計算機は 2 以上の整数を 1 つ受け取り、6 ステップの車輪付き決定的試し割りを実行し、最小素因数とともにコファクターと is_prime フラグを返します。無料のブラウザ経路は API とバイト単位で一致し、成功リクエストあたり $0.002 です。
最小素因数とは何か、本ツールが返すもの
成功応答は元の n を数値としてエコーし、smallest_prime_factor をその最小素数として報告し、因数が n に等しいときだけ is_prime を true にし、n を因数で割った cofactor を含めて一回の呼び出しで補余商を確認できます。欠落・小数・非数値・真偽値・厳密に 2 未満の入力は算術の前に invalid_input で拒否され、9.5 のような浮動小数や 0 が誤解を招く因数を返すことはありません。
決定的試し割りアルゴリズムの仕組み
巨大整数の完全素因数分解には、この最小因数エンドポイントではなく専用の素因数分解機能を使ってください。
最小素因数計算機が実務フローに収まる場所
コンテスト用ソルバや教育向け API は、オメガ計数・ラジカル・篩表への第一ブロックとして SPF を公開します。本機能はティア A のため、このページに数を貼り付けてブラウザで同一ロジックを無料実行でき、後で POST 型タスクをスクリプトや SDK に接続する際は同じ契約をリクエストあたり $0.002 で自動化できます。n は公開された安全範囲内の 2 以上の整数に保ち、invalid_input は再試行ではなくクライアント修正として扱い、クライアント側の二回目の除算なしで補余商が欲しいときは cofactor フィールドを使ってください。
技術的な質問
料金はいくらですか?
API ではリクエストあたり $0.002 です。同じ計算はこのページのブラウザでも無料で実行されます。
どの数が受け付けられますか?
2 以上の整数で、公開された安全整数の上限までです。小数、真偽値、空入力、2 未満は invalid_input を返します。
n が素数のとき何が返りますか?
smallest_prime_factor は n と等しく、is_prime は true、cofactor は 1 です。
完全な素因数分解とどう違いますか?
本エンドポイントは最小素因数とそのコファクターだけを返します。すべての素数べきを列挙せず、オメガ計数も計算しません。
アルゴリズムは乱数的ですか?
いいえ。試し割りは完全に決定的で、同じ n は常に同じ JSON を返し、ランダム証人や壁時計シードはありません。