浪費数チェッカー
4は2²と分解すると2桁になり、4自身の1桁より多いので浪費数です。2以上の整数を入力すると、両方の桁数と、浪費数・等桁数・経済数のどれに当たるかが並んで表示されます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 4
- n の桁数
- 1
- 素因数分解の桁数
- 2
- 因数分解
- 2^2
- 分類
- extravagant
浪費数(レクリエーション数論では wasteful number とも呼ばれ、英語では extravagant number)とは、自然数 n について、その素因数分解の書き方に使う十進桁の数が、n 自身の十進表記の桁数より厳密に多いものです。数えられるのは素数の桁と、1 より大きい指数の桁だけであり、乗算記号やキャレットは無視します。たとえば 4 は 2 の 2 乗に分解され、分解側は 2 桁、4 自身は 1 桁なので浪費数です。6 は 2 と 3 の積で 2 桁対 1 桁となり、やはり浪費数です。10 は 2 と 5 の積で 2 桁が 10 の 2 桁と一致するため等桁数であり、浪費数ではありません。本チェッカーは 2 以上の整数 n を受け取り、決定的な試し割りで因数分解し、両方の桁数を数え、真偽値 extravagant に加えて完全な分類、素因数、コンパクトな分解文字列を返します。エンジンはネットワークを呼ばず、乱数も使わず、時計にも依存しないため、同じ n は常に同じ答えになります。
浪費数とは何か、応答に何が含まれるか
数論では、正の整数を桁の効率に関する三つのクラスへ分けます。比較するのは、n の十進桁数と、n の素因数分解を通常のコンパクト表記で書いたときに現れる桁の合計です。各素因数の桁をすべて数えます。
素数が 1 より大きい指数で現れるときは、その指数の桁もすべて数えます。指数が 1 のときは書かれた積から省略されるため、桁は 0 です。乗算の中点やキャレットなどの記号は数えません。
分解側の桁合計が n の桁数より大きければ浪費数(wasteful)、等しければ等桁数(equidigital)、分解が短ければ節約的(economical)です。
古典的な浪費数の例は 4(2 の 2 乗:2 桁対 1 桁)、6(2 と 3:2 対 1)、8(2 の 3 乗:2 対 1)、9(3 の 2 乗:2 対 1)、12(2 の 2 乗と 3:3 対 2)です。等桁数の例はすべての素数(分解は素数そのもの)と 10(2 と 5:2 対 2)です。
節約的な例は、短い素数冪の積が桁数以上の大きさになるほど n が大きくなったときに現れます。浪費数でない整数は extravagant が false の成功応答であり、エラーではありません。桁効率の比較なしに素数冪だけが必要な場合は専用の素因数分解ツールをご利用ください。
本ページは浪費数の問いに対し、二つの桁数を並べて答えます。
入力の読み方と桁数を厳密に保つ方法
正の値には任意の先頭プラスを許します。埋め込み空白、十六進プレフィックス、指数表記は拒否し、悪いセルが誤ったフラグにならないようにします。負の整数と 2 未満は拒否します。
ここでの浪費分類は素因数分解の定義域に合わせて 2 以上の整数に限るためです。エンジンは JavaScript の安全整数の範囲に留まり、授業問題、プログラミングコンテスト、中程度の n に対する多くの応用判定には十分です。内部では試し割りで因数分解します。
まず 2 の因数を除き、残りの平方根まで奇数候補を歩き、1 より大きい残りの素数で終えます。桁数は非負値に対する 10 による繰り返し除算で求め、境界付近を浮動小数で丸めて誤って浪費と判定する経路はありません。各素数冪 p の e について、分解桁合計は p の十進桁数を足し、e が 1 より大きいときは e の十進桁数も足します。
n の長さは n に同じ桁ウォークを適用した結果です。既知の浪費数列への所属を主張する CI フィクスチャ、学生の分類を確かめる採点スクリプト、入力を変えながら extravagant フラグが切り替わる対話授業に適しています。
学習・研究デモ・コードでの浪費判定の位置づけ
学生はスミス数、完全数、ハーシャッド数の隣で、レクリエーション数論として浪費数・等桁数・節約数に出会います。教員は、指数が桁集計にどう入るかを隠す不透明な電卓アプリに頼らず、ワークシートの解答キーを生成できます。
開発者は同じ契約で数論ライブラリのサンプル検証、乱数整数生成器のプロパティテストのゲート、デモ手順の前にシードが浪費クラスにあるかの事前確認に使います。コンテスト練習では、wasteful 数列の OEIS 表をダウンロードせずに解を照合できる、高速なオフラインの浪費回答源がしばしば必要です。
素数冪だけが必要なときは素因数分解と、桁和の一致が必要なときはスミス数チェッカーと、約数和による分類が必要なときは過剰数チェッカーと組み合わせてご利用ください。
活用例
宿題とコンテストの分類
手計算の因数分解なしに、分解の桁長と n の桁長を比べて、整数が浪費・等桁・節約のどれかを判定します。
決定的なテスト用フィクスチャ
静的な OEIS ダンプを埋め込まず、単体テスト・プロパティ検査・CI アサーション向けに再現可能な浪費/非浪費サンプルを生成します。
桁効率の面白さを教える
素数冪の書き方が n 自身より多くの桁を使い得ることを、ブラウザ上で n を無料で変えながら学生に示します。
よくある質問
n が 2 未満のときはどうなりますか?
ここでの浪費数は、通常の意味で素因数分解が意味を持つ整数 n ≥ 2 に対して定義されます。
分解の桁はどう数えますか?
n を素因数分解し、各素数の十進桁数を足します。指数が 1 より大きいときはその指数の桁数も足します。乗算記号とキャレットは数えません。
アルゴリズムは乱数を使いますか?
いいえ。 決定的な試し割りと厳密な桁数計算です。同じ n は常に同じ因数・桁合計・extravagant フラグになります。
スミス数チェッカーと何が違いますか?
スミス判定は n と素因数(多重度付き)の桁和を比較します。本ツールは桁の長さを比較し、素因数分解の書き方が n より多くの桁を使うかを見ます。
素数が浪費数になることはありますか?
ありません。素数の素因数分解はその素数自身なので、二つの桁数は必ず同じになり、判定は常に等桁数になります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/extravagant-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":4}'const res = await fetch("https://api.kit.forhosting.com/numth/extravagant-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/extravagant-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/extravagant-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/extravagant-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 4
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.extravagant_number",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ブラウザで無料にお試しいただくか、宿題の解答キー、コンテスト用フィクスチャ、OEIS 風の数列確認を自動化するときは、成功したリクエストごとに API を $0.002 でご利用ください。
浪費数とは何か、応答に何が含まれるか
本エンドポイントは常に解析済みの n、n_digits、factorization_digits、昇順の素数冪の base と exponent の対、中点区切りのコンパクト分解文字列、factorization_digits が n_digits を超えるときだけ真となる boolean extravagant、および classification(extravagant / equidigital / economical)を返します。2 未満、非整数、分数、科学的記数法、安全整数範囲外は invalid_input と明確なメッセージで失敗します。
入力の読み方と桁数を厳密に保つ方法
推奨フィールドは JSON 整数としての n ですが、十進文字列および別名 number または value も受け付けるため、フォーム、表計算、クエリ文字列が同一契約を再利用できます。
学習・研究デモ・コードでの浪費判定の位置づけ
本ページでは作業はすべてブラウザ内で行われ、API 経由では成功した照会ごとに $0.002 がかかり、検証失敗は課金されず、応答後に何も保存されません。無料の対話的探索と、同一の有料 API という分担は、KIT のティア A カタログの他項目と一致し、授業デモから自動パイプラインへ、数学的結果を変えずに移行できます。
技術的な質問
浪費数チェッカーの料金はいくらですか?
このページではブラウザ上で無料です。API では成功したリクエストが $0.002 で、無効な入力は課金されません。