モラン数チェッカー
数を各桁の和で割ると素数になるかを調べます。18の桁の和は9で、18÷9は2、2は素数なので18はモラン数です。各段階を表示するので、該当しない場合もその理由が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 18
- 各桁の和
- 9
- 商
- 2
モラン数とは、正の整数を十進表記の各桁の和で割った結果が素数になる数です。このチェッカーは定義の各段階を明確に処理します。桁和を計算し、割り切れることを確認し、得られた整数の商が素数かを判定して、最終的な分類を返します。計算は決定的で、すべて整数演算です。
モラン数の判定が意味すること
モラン数の性質は、十進表記と素数を結び付けます。正の整数 n の十進表記に含まれる各桁を足し、その合計で n を割ります。割り算の結果が整数であり、さらにその整数が素数である場合に限り、元の数はモラン数です。
たとえば 18 の桁和は 1 + 8 = 9 です。18 を 9 で割ると 2 になり、2 は素数なので、18 はモラン数です。どの条件も欠かせません。
余りが出る場合は検査対象となる整数の商がなく、モラン数ではありません。割り切れても商が 1 または合成数なら、結果は false です。割り切れない場合は分数が定義の対象外なので quotient を省略します。
1 は有効な入力ですが、桁和と商がともに 1 であり、1 は素数ではないためモラン数ではありません。
正確な結果を得る仕組み
ソルバーは n を完全な十進整数として読み取ります。解析後、正規化された十進表記を一度走査して桁和を求めます。受理する入力は正なので、この合計がゼロになることはありません。
次に剰余演算で商が整数かを判定し、割り切れた場合だけ素数判定へ進みます。2 未満は素数ではなく、2 は直接処理し、それ以外の偶数は直ちに除外します。奇数の候補については、除数が候補をその除数で割った値を超えない間だけ、奇数の除数を試します。
この整数比較は丸められた平方根に依存せず、有限の範囲で必ず終了します。除数が見つかれば商は合成数であり、上限まで見つからなければ素数です。
学習、検証、データ処理での活用方法
モラン数は、単純な桁の演算が本格的な素数条件につながるため、娯楽数学や数論の学習に適しています。授業では、構造化された応答を見る前に、学習者が桁和を計算し、割り切れるかを予想し、商を因数分解できます。途中の事実を残したまま答え合わせができるので、結論の根拠も説明できます。
quotient は数学的に意味がある場合だけ存在するため、型付きクライアントが曖昧な null や小数近似を解釈する必要はありません。有限の数列を調べる場合は、ご自身の制御されたループから候補を送り、moran が true の応答を保存してください。
活用例
数論の演習を確認する
候補となるモラン数について、分類根拠となる桁和、整除性、素数の商を含めて確認できます。
整数レコードを分類する
検証やデータ拡充の処理で、各整数に説明可能なモラン数フラグと途中の計算結果を追加できます。
よくある質問
モラン数とは何ですか?
正の整数を十進表記の桁和で割り切ったとき、整数の商が素数になる数です。
18 はモラン数ですか?
はい。 桁和は 9 で、18 を 9 で割ると素数の 2 になります。
割り切れない場合はどうなりますか?
モラン数ではありません。divisible と moran は false になり、整数の商がないため quotient は省略されます。
1はモラン数ですか?
いいえ。桁の和は1で商も1になり、1は素数ではありません。1を入力することはできますが、結果には条件を満たさない理由が示されます。
割り切れても商が素数でない場合は?
その場合もモラン数ではありません。結果には桁の和、割り切れたこと、商が1または合成数であることが示されるので、どこで条件を外れたかが分かります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/moran-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":18}'const res = await fetch("https://api.kit.forhosting.com/numth/moran-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 18
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/moran-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 18
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/moran-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":18}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":18}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/moran-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 18
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.moran_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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
個別の確認はブラウザで無料実行でき、API は成功したリクエストごとに $0.002 で利用できます。
モラン数の判定が意味すること
応答では digit_sum、divisible、省略可能な quotient、quotient_is_prime、moran によって各段階を示します。そのため、単なる「はい」か「いいえ」ではなく、否定結果の理由も確認できます。1 未満の入力には数学的分類ではなく invalid_input を返します。
正確な結果を得る仕組み
安全な JSON 整数と十進整数全体を表す文字列を受け付けますが、小数、指数表記、無限大、未指定の値、JavaScript の安全な整数範囲外の値は拒否します。この範囲制限により、各桁、余り、商の意味を整数として正確に保てます。ネットワーク、乱数、保存状態、モデル、現在時刻は使わないため、同じ入力はブラウザでも API でも常に同じ JSON を生成します。
学習、検証、データ処理での活用方法
divisible は素数判定前に失敗する数と、整数の商が合成数になる数を区別し、quotient_is_prime は絞り込みに使える真偽値を直接提供します。単発の確認にはブラウザが便利で、自動化された成功リクエストは $0.002 で同じ純粋なソルバーを実行します。この機能はリクエストごとに指定された 1 個の値を評価し、範囲の列挙や推測は行いません。
連携の活用例
数列生成器をテストする
娯楽的な整数列を生成または抽出するプログラムの回帰テストに、決定的な正例と負例を利用できます。
技術的な質問
n が 1 未満の場合はどうなりますか?
このチェッカーは正の整数だけを受け付けるため、invalid_input でリクエストが失敗します。
API リクエストの料金はいくらですか?
成功した API リクエストごとに $0.002 です。同じ決定的な計算をブラウザで無料実行することもできます。