p進付値計算機
整数が素数で何回割り切れるかを数えます。72は8×9なので素数2を3回含み、2進付値は3、残りの部分は9です。負の数にも使えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 72
- 電力(W)
- 2
- 評価額
- 3
- 残差
- 9
p進付値は、素数 p が整数 n を何回割るかを測る数論的指数です。代数学の授業、代数的整数論、末尾因子のコンテスト問題、p進解析はいずれもこの一つの整数を使います。学習者はしばしば完全な素因数分解や階乗の Legendre 公式と混同します。本計算機は非零の n と素数 p を受け取り、素数判定のうえ |n| から p のべきを除き、付値・p を含まない剰余・短い公式文字列を返します。合成数など非素数の底は古典的定義を保つために拒否します。
p進付値が表すもの
同値な言い方では、|n| を p の k 乗と p で割れない整数 m の積に書くと付値は k であり、本計算機では m が n の符号を残した residual になります。p が n を全く割らないとき最大の k は 0 で residual は n に一致します。n が p の純粋なべきなら residual の絶対値は 1 です。
負の n は絶対値と同じ付値を持ちます。p進絶対値では 0 の付値をプラス無限大とみなし、積公式や超距離性が整うようにします。数論の教科書は局所体の前にこれを導入し、競技プログラミングでは積中の 2 や 5 の因子数、素数べきを法とする分数の簡約、素数べき除去後の平方自由部分の検査に使います。
valuation と residual の両方を返すことで、呼び出し側は n = p^valuation × residual を再構成し、二度目の素因数分解なしで恒等式を検証できます。
p進付値が役立つ場面
教室や家庭教師プラットフォームは、毎回完全な素因数分解ループを書かずに選んだ素数の指数を確認できるよう p進付値計算機を使います。競技プログラミングの補助は、分数の約分、積の多重度、p べき除去後の平方自由核の検証で p のべきを剥がす決定的オラクルを必要とします。
代数的整数論のノートは Z_p と Q_p の局所的な問いを、p進級数へ持ち上げる前に整数上の有限付値へ落とします。検証失敗と非素数の p は残高を消費しません。本キットの兄弟ページは完全素因数分解、Legendre による階乗指数、末尾の零を扱います。
本ページは一つの素数における一つの整数の付値を探す人に特化して答えます。
活用例
p進・局所体ノート
計算機代数ライブラリを埋め込まずに、例を Z_p や Q_p へ持ち上げる前の整数上の有限付値を計算します。
よくある質問
n が零のときはどうなりますか?
零の p進付値は慣例上 +∞ であり有限整数ではないため、零は拒否され課金されません。
付値は n の符号に依存しますか?
residual は n の符号を保ち、n = p^valuation × residual が成り立ちます。
72の2進付値はいくつですか?
3で、残りの部分は9です。72は8×9なので2で3回割り切れ、9はもう2で割り切れません。
残りの部分とは何ですか?
素数の因数をすべて取り除いた後に残る数で、その素数ではもう割り切れません。素数の付値乗を掛けると元の数に戻ります。45と素数2なら、付値0、残りは45です。
pが素数でないとどうなりますか?
入力は受け付けられず、pは素数でなければならないと表示されます。合成数や素数の2乗をpにすると、古典的な定義が成り立たなくなるためです。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/p-adic-valuation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":72,"p":2}'const res = await fetch("https://api.kit.forhosting.com/numth/p-adic-valuation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 72,
"p": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/p-adic-valuation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 72,
"p": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/p-adic-valuation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":72,"p":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":72,"p":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/p-adic-valuation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 72,
"p": 2
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.p_adic_valuation",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
n を p の k 乗と p で割れない単元の積として書いたときの k が v_p(n) です。零は v_p(0) が慣例上プラス無限大であり有限整数ではないため拒否します。
p進付値の意味と v_p(n) の定義
固定した素数 p と非零整数 n に対し、p進付値 v_p(n) は p の k 乗がなお n を割るような最大の非負整数 k です。除法は符号を無視するため、p=2 での −12 の v_p は 12 と同じです。定義は意図的に n=0 を除外します。そのため本 API は無限大の有限コードを作らず invalid_input で失敗します。付値は積について加法的で、v_p(ab)=v_p(a)+v_p(b) となり、p の −付値乗で与えられる p進絶対値の基礎です。
入力契約・アルゴリズム・応答形・エラー
n は絶対値が高々 1 兆の非零整数、p は 2 以上 1 兆以下の素数です。ハンドラはまず p≥2 を確認し、試し割りによる決定的な素数判定を行います。偶数の合成数、素数の平方、非素数の整数はいずれも p が素数でなければならないという明確なメッセージで失敗し、課金されません。n の零は p進付値が未定義であるというメッセージで拒否されます。アルゴリズムは p で繰り返し割るだけで n を完全分解しないため、小さな素数 p に対する大きな高度合成数でも高速です。必須の整数二つを JSON 本体で送ってください。各欄は JSON 数または数字だけの文字列でよく、欠落・分数・非有限値・範囲外はフィールド名付きの invalid_input になります。成功時は n と p をエコーし、valuation を非負整数、residual を n を p^valuation で割った符号付き整数、divides を valuation が正のとき真のブール、formula を v_p(n)=k 形式の短い文字列として返します。例: n=72, p=2 なら valuation=3, residual=9(72=8×9)。例: n=45, p=2 なら valuation=0, residual=45(2 は 45 を割らない)。
p進付値 API が役立つ場面
小さな parse エンドポイントなら、二引数の検査のために計算機代数システムを取り込まずに済みます。実装は純粋 parse の tier A のため、成功した各呼び出しはモデルトークンも外向きネットワークもなく公開の基本料金 $0.002 です。公開範囲内にリクエストを収め、テストで valuation と residual を固定すれば、独自の記号計算基盤なしで宿題・LMS プラグイン・エッジワーカー向けに再現可能な指数が得られます。
連携の活用例
教室・宿題の検算
学習者が n と素数 p を送り、完全素因数分解なしで v_p(n) と p を含まない residual を手計算と照合できるようにします。
コンテストとスクリプト補助
固定素数のべきを積から取り除き、分数を簡約し、多重度を調べる決定的なアイテム課金エンドポイントとして使えます。
技術的な質問
この API で p進付値をどう計算しますか?
非零整数 n と素数 p を JSON で送ってください。成功時は valuation(指数)、residual(n / p^valuation)、divides、短い formula 文字列が返ります。
p が素数でないときはどうなりますか?
リクエストは p が素数でなければならないと示す invalid_input で失敗します。合成数・単位・負の底は拒否され、検証失敗は課金されません。
p進付値計算機の料金は?
ブラウザツールは無料です。API リクエストは成功1回あたり $0.002 の KIT 前払い残高を使い、無効入力と非素数 p は課金されません。