カプレカ数チェッカー
45はカプレカ数です。45の2乗は2025で、20と25を足すと再び45になります。正の整数を入力すると、2乗のあらゆる分け方を調べ、成り立つ分け方があれば左右の部分を表示します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 45
- 平方数
- 2025
- 左部分
- 20
- 右部分
- 25
カプレカ数チェッカーは、娯楽数論の定番の問いに答えます:正の整数nについて、nの2乗の10進の桁を、足し合わせるとn自身に戻る左部分と右部分に分割できるか?nを指定すると、このツールは平方数の正確な10進文字列、有効な分割が存在する場合の勝利の左部分と右部分、そしてそのような分割が見つかったときにちょうどtrueとなる真偽値のkaprekarフラグを返します。有名な例には45(45の2乗は2025で、20+25=45)や297(88209は88+209に分割されます)があります。エンジンは決定的なBigInt算術と分割点の網羅的な走査を使うため、結果は浮動小数点のずれがなく、実行のたびに同一です。通信を呼び出すことも、ランダム性をサンプリングすることも、時計に依存することも一切ありません。宿題やコンテスト対策、OEIS風の探索にはブラウザで無料でご覧ください。
カプレカ数とは何か、結果に表示される内容
正の整数nは、nの2乗の10進表現を、左部分と右部分という2つの連続した部分に分割でき、その2つの整数の和がちょうどnになるとき、カプレカ数です。右側の部分は数字の文字列として読むと0で始まってもかまいませんが、完全に0であってはなりません。このルールにより、2乗が10000で、右半分が0でも「成立」してしまう100のような数を正しく除外できます。
長年の慣習により、数1はカプレカ数です:1の2乗は1で、0+1と読めます。9はカプレカ数です。 81が8+1に分割されるためです。45と55は最もよく知られる2桁の例で、99、297、703は標準的なリストのどれにも登場します。
10は合成数で正の数ですが、カプレカ数ではありません:100は10に足し合わされる0でない右部分に分割できません。このチェッカーは、解析済みのn、正確な平方の文字列、有効な分割が存在する場合のleftとright(それ以外はnull)、そして有効な分割が見つかった場合にのみtrueとなるkaprekarを返します。
カプレカ数の分割テストなしで単に整数の平方だけが必要な場合は、自分で2乗してください。このページが答えるのは、勝利の分割が存在する場合はその両方の部分を含むカプレカ数の問いです。
入力の読み取り方と平方数の分割の正確さの保ち方
正の値には先頭の任意のプラス記号が許可されますが、埋め込まれた空白、16進数のプレフィックス、指数表記は不正なセルが誤ったフラグにすり替わることを防ぐため拒否されます。このチェッカーは1から始まる正の整数についてカプレカ数を定義するため、負の整数と0は拒否されます。
エンジンは入力についてJavaScriptの安全な整数の範囲内にとどまり、これは授業の問題、プログラミングコンテスト、そして中程度に大きなnに対するほとんどの応用チェックには十分すぎるほどです。
次にアルゴリズムは、1から最後の桁の直前までのすべての分割インデックスを歩きます:各インデックスについて、左を整数のプレフィックスとして、右を整数のサフィックスとして読み、すべてが0のサフィックスをスキップし、和がnに等しい最初のペアを受け入れます。僅差の一致を誤ってカプレカ数と判定してしまうような浮動小数点のステップはありません。
カプレカ数の判定が学習・研究デモ・コードで果たす役割
学生は、娯楽数論、桁ベースの性質、そして4桁の並べ替えに関する彼の手順から来るカプレカの定数6174とともに、D.R. カプレカにちなんだ数の面白さを探索するときにカプレカ数に出会います。教師は、平方と分割のステップを隠す不透明な電卓アプリを信用せずにワークシートの解答例を生成できます。
開発者は、同じ契約を使って数論ライブラリのサンプルデータを検証したり、ランダムな整数生成器に対するプロパティテストをゲート化したり、デモンストレーションのステップの前にシードがカプレカ数のクラスに属するかを事前確認したりします。
コンテストの練習では、OEISの表をダウンロードせずに解答を確認できるよう、カプレカ数の答えの高速なオフラインソースがよく必要とされます。素因数の桁の和が必要な場合はスミス数チェッカーと、約数和の分類が必要な場合は過剰数チェッカーと、平方分割ではなく素数べきが必要な場合は素因数分解とも組み合わせてください。
活用例
宿題とコンテストの分類
手作業の長い掛け算なしで平方分割の和を確認することで、ワークシートやコンテストのチェック用に正の整数がカプレカ数かどうかを判定します。
決定的なテストフィクスチャ
静的なOEISのダンプを埋め込まずに、単体テストやプロパティチェック、CIアサーション向けに再現性のあるカプレカ数・非カプレカ数のケースを生成します。
平方分割の面白さの指導
無料でブラウザ上でnをライブに変えながら、nの2乗の桁がどのようにnへ再結合するかを学生に示します。
よくある質問
nが1未満の場合はどうなりますか?
ここでのカプレカ数は1以上の正の整数nに対してのみ定義されます。
カプレカ数のテストはどう計算されますか?
正確なBigInt算術でnを2乗し、その平方数のすべての10進分割を左部分と右部分に試します。右部分がすべて0ではなく、left + rightがnに等しい最初の分割を受け入れます。数1は慣習によりカプレカ数です(0 + 1)。
このアルゴリズムはランダム化されていますか?
いいえ。 決定的なBigInt平方計算と網羅的な分割走査を使います。同じnは常に同じ平方数、部分、kaprekarフラグを返します。
100はカプレカ数ですか?
いいえ。 100² = 10000で100 + 00 = 100ではありますが、右側の部分が完全に0であることは許可されません。このチェッカーは正しくkaprekar falseを返します。
45がカプレカ数なのはなぜですか?
45の2乗は2025で、これを20と25に分けて足すと45に戻るからです。結果には、この左右の部分も一緒に表示されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/kaprekar-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":45}'const res = await fetch("https://api.kit.forhosting.com/numth/kaprekar-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 45
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/kaprekar-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 45
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/kaprekar-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":45}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":45}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/kaprekar-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 45
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.kaprekar_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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
分類パイプラインや採点スクリプト、再現性のあるカプレカ数の回答が必要な教育デモを自動化する場合は、成功したリクエストごとに$0.002のAPIをご利用ください。
カプレカ数とは何か、レスポンスに含まれる内容
非カプレカ数の正の整数は、kaprekarがfalseの有効な成功レスポンスであり、エラーではありません。フィールドの欠落、非整数、分数、指数表記、安全な整数範囲外の値、1未満のnはすべてinvalid_inputと明確なメッセージで失敗します。
入力の読み取り方と平方数の分割の正確さの保ち方
優先されるフィールドはJSON整数としてのnですが、10進数文字列とnumber・valueというエイリアスも受け付けるため、フォームやスプレッドシート、クエリ文字列が1つの契約を再利用できます。内部では、平方はBigIntで計算されるため、nが安全な整数の上限に近づいても、nの2乗の10進の桁は正確なままでIEEE倍精度浮動小数点を経由することはありません。
カプレカ数の判定が学習・研究デモ・コードで果たす役割
このページでは処理はすべてブラウザ内で完結し、API経由では成功した照会1件ごとに$0.002かかり、検証に失敗した場合は課金されず、レスポンスを返した後は何も保存されません。無料のインタラクティブな検証と、同一の結果を返す有料APIというこの分離はKITのtier Aカタログ全体の方針と一致しており、教室でのデモから自動パイプラインへ、数学的な結果を変えることなく移行できます。
技術的な質問
カプレカ数チェッカーの料金は?
このページのブラウザ上では無料です。API経由では成功したリクエストごとに$0.002かかり、無効な入力には課金されません。