ハーシャッド数チェッカー
18はハーシャッド数です。各桁の和は9で、18を9で割るとちょうど2になります。正の整数を入力すると、各桁とその和、和で割り切れるかが分かり、コンテスト問題や桁の和の宿題に役立ちます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 18
- 桁
- 1, 8
- 桁数
- 2
- 各桁の和
- 9
- 商
- 2
ハーシャッド数—ニヴェン数とも呼ばれます—は、自身の十進桁の和で割り切れる正の整数です。Harshad という名はサンスクリットで「喜びを与えるもの」を意味し、Niven は数学者 Ivan Niven に由来します。どちらも同じ整除性を指します。生徒は桁和のコンテスト問題や宿題でこれらの数に出会い、教師は桁・和・商を示す決定的なオラクルを必要とし、技術者はシリアル識別子への軽い構造フィルタとしてこの判定を使うことがあります。本チェッカーは正の整数 n を1つ受け取り、十進桁を展開して合計し、その和が n を割り切るかを試し、割り切れるときは整数の商を返します。
ハーシャッド(ニヴェン)判定と商の計算方法
十進法で書かれた正の整数 n から始めます。n を十で割った余りを繰り返し取り、整数除算で十で割ることで各桁を取り出し、収集した余りを最上位が先になるよう反転します。それらの桁値を合計して s を得ます。
教科書ではしばしば s(n) や sod(n) と書きます。定義により、s が n を余りなく割り切るとき、すなわち n mod s がゼロのとき、かつそのときに限り n はハーシャッド—同義でニヴェン—です。判定が成功したときのハーシャッド商は、n を s で割る通常の整数除算です。
古典的な例として、十八は桁が一と八で和が九、十八を九で割ると二となるため、商二のハーシャッド数です。十九は桁が一と九で和が十、十九は十で割り切れないためハーシャッドではありません。一は単一の桁一が商一で割り切るためハーシャッドです。
十や百などの十の累乗は桁和が一なので常にハーシャッドです。
実務でハーシャッド判定が現れる場面
オリンピックやプログラミングコンテストでは、n がハーシャッドか、ある上限未満に何個あるか、フィルタした一覧について n を桁和で割った商は何か、といった問いがよく出ます。信頼できる単一 n のオラクルがあれば、フィクスチャ作成と採点が速くなります。三と九の倍数判定の授業はすでに十進桁和を使います。
ハーシャッド数はその直感を完全な整除述語へ広げ、生徒が探索できる名前付きの族を与えます。製品・運用チームは、完全な Luhn や暗号的チェックサムが重すぎるときに、チケットコードやバッチ識別子、生成シリアルへ軽い構造フィルタを掛けることがあります。決定的なハーシャッドフラグと商は、オフラインで監査できる単純なゲートです。
宿題や素早い健全性確認には無料のブラウザツールを使い、大量検証が必要なときは同じ契約をスクリプトから呼び出してください。桁和だけ、範囲列挙、他基数への展開が後から必要なら、このランディングを過負荷にせず別の検索意図として扱ってください。
活用例
コンテスト・宿題用フィクスチャ
n がハーシャッドかどうかを検証し、オリンピック問題や授業の解答キー向けに正確な商を取得します。
桁和による整除の指導
順序付きの桁・その和・割り切れるか否かの結果を示し、ニヴェンの定義を抽象ではなく具体的にします。
シリアル構造の軽量チェック
単純な加算ゲートが必要なパイプラインで、チケットやバッチ識別子に決定的なハーシャッドフラグと商を適用します。
よくある質問
ハーシャッド数・ニヴェン数とは何ですか?
自身の十進桁の和で割り切れる正の整数です。例として 18 は桁和 9 で 18÷9=2 のため、18 はハーシャッド(ニヴェン)です。
対応基数は十進のみですか?
はい。 本チェッカーは十進桁のみを使い、一般的なハーシャッド/ニヴェン検索意図に合わせています。他基数はここでは対象外です。
18はハーシャッド数ですか?
はい。各桁1と8の和は9で、18を9で割ると余りなく2になります。結果には各桁、和の9、商の2が表示されます。
11がハーシャッド数でないのはなぜですか?
各桁1と1の和は2ですが、11は奇数なので2で割り切れないためです。和で割り切れないときは、商は表示されません。
10の累乗はハーシャッド数ですか?
はい。10の累乗は各桁の和が1なので、必ずハーシャッド数になります。同じ理由で、1もハーシャッド数です。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/harshad-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":18}'const res = await fetch("https://api.kit.forhosting.com/numth/harshad-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/harshad-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/harshad-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/harshad-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.harshad_number",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
min_n | 1 |
max_n | 9007199254740991 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ブラウザツールと API は同一の純関数を共有するため、対話的な確認と自動パイプラインが静かに食い違うことはありません。
ハーシャッド(ニヴェン)判定と商の計算方法
失敗したときはこの定義のもとでは整数の商は存在せず、クライアントが分数値を捏造せずに分岐できるよう、フィールドは null で返されます。
送信する内容と返却される内容
零と負の整数は、古典的なハーシャッド/ニヴェン定義が正の整数のみに適用されるため失敗します。エラーメッセージは n が少なくとも1でなければならないと述べ、フォームやスクリプトが推測せずに入力を直せるようにしています。エンジンは純粋な parse 処理のため、同じ n は常に同じオブジェクトを生成し、モデルのずれや呼び出し間の保存状態はありません。必須の正の整数をフィールド n に指定するか、別名 number、value、integer を使います。欠落・非整数・1未満・安全整数の上限を超える値は invalid_input で拒否され、課金されません。成功時の応答には正規化された n、最上位から並んだ十進桁値の配列 digits、その長さ digit_count、合計 digit_sum、真偽値 is_harshad、および is_harshad が true のときは digit_sum で割った整数 n、和が n を割らないときは null となる quotient が含まれます。例として、n が十八なら桁は一と八、digit_sum は九、is_harshad は true、quotient は二;n が十九なら digit_sum は十、is_harshad は false、quotient は null;n が十二なら桁は一と二、和は三、商は四です。契約は単体テスト、授業デモ、バッチパイプラインに適した安定した JSON です。
実務でハーシャッド判定が現れる場面
本能力は純粋な parse エンジンのため、API 料金は成功1件あたり公開ベースの $0.002 で、検証失敗は残高を消費しません。
技術的な質問
quotient フィールドの意味は?
is_harshad が true のとき、quotient は n を digit_sum で割った整数です。和が n を割らないとき、quotient は null です。
なぜ n が 1 未満だと拒否されるのですか?
古典的定義は正の整数のみを対象とします。零と負数は n が少なくとも 1 である旨のメッセージ付きで invalid_input を返します。
料金はいくらですか?
ブラウザツールは無料でローカル実行です。API は成功1件あたり $0.002 の前払い KIT 残高を使い、無効入力は課金されません。