等桁数チェッカー:素因数分解の桁数を比較
等桁数とは、通常の十進表記と素因数分解の表記で使う数字の個数がちょうど等しい整数です。このチェッカーは、対応範囲の整数を素因数分解し、各素数と実際に記す指数の桁数を数え、元の整数の桁数と比較します。完全な構造化因数分解、二つの桁数、判定結果を返すため、授業、数理パズル、スクリプト、数論の調査で根拠を明確に確認できます。
無料で実行
等桁数判定で数えるもの
この判定では、同じ正の整数を表す二つの簡潔な表記を比較します。一つ目は十進法で書いた整数そのものであり、n の十進桁数を使います。二つ目は標準的な素因数分解です。各素数の数字をすべて数え、指数が一より大きい場合に限って指数の数字も数えます。指数一は慣例として省略されるため加算しません。乗算記号や累乗を示す記号は数字ではないので対象外です。たとえば 27 は二桁で、3 の 3 乗に分解できます。底の 3 が一桁、指数の 3 が一桁なので合計二桁となり、27 は等桁数です。結果には判定名だけでなく両方の合計が含まれるため、お客様は計算を確認し、因数を別の処理にも利用できます。二未満の値は、空でない素因数分解を持たないためエラーになります。
因数分解結果の読み方
n は書式付き文字列、小数、科学表記ではなく整数として送信してください。結果では素因数が小さい順に並びます。各項目には素数と指数があり、構造化出力では指数一も明示します。ただし、表記上は省略されるため桁数には含めません。number_digits は元の十進整数の長さです。factorization_digits は各素数の十進桁数を合計し、同じ因数が繰り返される場合だけ指数の桁数を加えます。is_equidigital は二つの合計が等しい場合に限り true です。この形式なら、素数自体が三桁の 101 や、指数が二桁の 12 も曖昧なく扱えます。記号は計算に入りません。入力上限は 1,000,000,000,000 です。素数入力では試す除数が多くなるため、明示的な上限によって実行時間を安定させつつ、教材、プログラミング課題、整数列の探索に十分な範囲を確保しています。
分類を正確に利用する方法
等桁数は、数字の個数に基づく関連分類の一つです。素因数分解の数字が元の整数より少ない数は一般にエコノミカル、多い数はエクストラバガントと呼ばれます。資料によっては、より厳しい条件のエコノミカル数をフルーガルと呼びます。この機能は等しいかどうかだけを判定し、両方の数を示しますので、お客様が参照資料の用語を適用できます。通常の十進表記と一意な素因数分解を使用し、別の基数や同じ素数を繰り返し展開した積とは比較しません。アルゴリズムは決定的で通信を行わないため、同じ有効入力から常に同じ順序の因数が得られます。テストデータや整数列の検証にも適しています。API による自動処理は1回 $0.002 で、ブラウザーでも同じ純粋な計算を実行します。他の資料と照合する際は、指数一と演算記号を数えない規則が同じかご確認ください。
活用例
数論の問題を確認
整数を分解し、二つの桁数から等桁数の判定を確認します。
整数列を探索
等桁数列を作成または検証するときに候補を調べます。
再現可能なテストを作成
順序付き因数と真偽値を授業、クイズ、自動テストに利用します。
よくある質問
因数分解のどの数字を数えますか?
各素数の数字と、一より大きい指数の数字を数えます。記号は数えません。
指数一を数えないのはなぜですか?
標準的な素因数表記では指数一を省略するため、書かれる数字に含まれないからです。
二未満の値を使用できますか?
いいえ。空でない素因数分解が必要なため、無効な入力としてエラーを返します。
負数や小数を使用できますか?
いいえ。n は 2 から 1,000,000,000,000 までの整数である必要があります。
API の料金はいくらですか?
API リクエスト1回の料金は $0.002 です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/equidigital-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":27}'const res = await fetch("https://api.kit.forhosting.com/numth/equidigital-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 27
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/equidigital-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 27
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/equidigital-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":27}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":27}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/equidigital-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 27
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.equidigital_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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |