平方数チェッカー
整数が平方数かどうかを判定し、第n番目の平方数も求められます。49は平方根が7の平方数で、第7番目の平方数は49です。判定には四捨五入した小数ではなく、正確な整数の平方根を使います。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 値
- 49
- N
- 7
- 第n平方数
- 49
- 平方根
- 7
- 平方根の2乗
- 49
平方数チェッカーは、2つの日常的な数論の問いに1つの決定的な契約で答えます。第一に、非負のインデックスnを指定すると、第n番目の平方数、つまりnの2乗を返します。0は0に、1は1に、2は4に、7は49に対応し、安全な整数の範囲まで続きます。第二に、テスト対象の任意の整数値を指定すると、正確な整数平方根を計算し、その根の2乗が元の数に戻るかを確認することで、その値が平方数そのものかを判定します。古典的な真のケースには0、1、4、9、16、25、36、49、100が含まれ、2、3、5、50のような非平方数は文脈のための切り捨てた根とともにfalseを返します。エンジンは境界付近で丸まる可能性のある浮動小数点の平方根を決して使わず、ランダム性をサンプリングせず、時計を読まず、通信も行いません。宿題やコンテスト対策、教育デモにはブラウザで無料でご覧ください。
第n番目の平方数とは何か、判定はどう決まるか
平方数とは、0以上のある整数kについてkの2乗として書ける非負整数のことです。根で並べると、第n番目の平方数の列が得られます:0番目は0、1番目は1、2番目は4、3番目は9、一般項は単純にnの2乗です。この機能は、nを指定するとその項を返すため、大きなインデックスを手で掛け算せずに表を作ったりワークシートを埋めたりテストの種を作ったりできます。
代わりに(または加えて)valueを指定すると、チェッカーは別の関連する問いに答えます:この整数はそもそも平方数か?Math.sqrtと許容誤差で推測することはありません。0は根0の平方数、1は根1の平方数、49は根7の平方数です。
48は平方数ではなく、48以下の最大の平方数が36であるため切り捨て根は6になります。
平方数の判定が学習・コーディング練習・自動化で果たす役割
学生は、九九、正方形の面積、ピタゴラスの三つ組を学ぶ初期の段階、そして後には無平方整数をふるいにかけたり法算術で二次剰余をテストしたりするときに平方数に出会います。教師は、浮動小数点の根を隠す不透明な電卓アプリを信用せずにワークシートの解答例を生成できます。
開発者は、同じ契約を使って数論ライブラリのサンプルデータを検証したり、ランダムな整数生成器に対するプロパティテストをゲート化したり、整数の根を前提とするデモンストレーションのステップの前にシードが平方数であることを事前確認したりします。
コンテストの練習では、OEISの表をダウンロードしたり平方数のリストをハードコードしたりせずに解答を確認できるよう、平方数所属の高速なオフラインソースがよく必要とされます。カタログコード、パズルID、グリッドサイズを正規化するデータパイプラインは、整数の次元として平方根を取る後続のステップの前に非平方数を拒否する必要がある場合があります。
平方数の桁分割が必要な場合はカプレカ数チェッカーと、漸化式が必要な場合はリュカ数やフィボナッチ数のツールと、nが平方数かどうかではなくnの素因数分解が必要な場合は素因数分解ツールとも組み合わせてください。
活用例
宿題とコンテストの分類
浮動小数点の根を使わずに、整数が平方数かどうかを判定し、ワークシートやコンテストのチェック用に第n番目の平方数を列挙します。
決定的なテストフィクスチャ
静的テーブルを埋め込まずに、単体テストやプロパティチェック、CIアサーション向けに再現性のある平方・非平方のケースを生成します。
平方根と面積モデルの指導
無料でブラウザ上で入力をライブに変えながら、nがn²にどう対応し、整数平方根がどのように根を復元するかを学生に示します。
よくある質問
valueが負の場合はどうなりますか?
平方数は非負整数に対して定義されるため、負の値はここでは平方数としてテストできません。
平方数の判定はどう計算されますか?
エンジンは、正確なBigInt算術で候補を掛け合わせる二分探索でvalueの整数平方根を計算し、rootの2乗がvalueと等しいかを確認します。浮動小数点のMath.sqrtは使われません。
このアルゴリズムはランダム化されていますか?
いいえ。 決定的な整数の掛け算と二分探索によるisqrtを使います。
平方数でない数を入れると何が分かりますか?
平方数ではないという結果に加えて、すぐ下の整数平方根とその2乗が分かります。48なら36が48以下で最大の平方数なので、平方根は6と表示されます。
平方数の番号は0と1のどちらから始まりますか?
0から始まります。第0番目は0、第1番目は1、第2番目は4なので、第n番目の平方数はいつも n×n です。負の番号は受け付けません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/square-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":7}'const res = await fetch("https://api.kit.forhosting.com/math/square-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/square-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/square-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/square-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 7
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.square_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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
テスト対象の負の値は、平方数が非負整数の上に存在するためinvalid_inputで拒否されます。採点スクリプトやパイプラインで再現性のある平方数の回答が必要な場合は、成功したリクエストごとに$0.002のAPIをご利用ください。
第n番目の平方数とは何か、判定はどう決まるか
整数平方根root(rootの2乗がvalue以下となる最大の整数)を計算し、rootの2乗がvalueと厳密に等しいときのみis_perfect_squareをtrueにします。値が平方数でない場合、is_perfect_squareはfalseで、rootは実数平方根の切り捨て値を返し続け、root_squaredはroot×rootに等しいため、呼び出し元は2回目のリクエストなしに直近の下位の平方数を確認できます。両方のフィールドの欠落、非整数、分数、指数表記、安全な整数範囲外の値、負のインデックスn、テスト対象の負の値はすべてinvalid_inputと明確なメッセージで失敗します。非平方の非負整数は成功したレスポンスでis_perfect_squareがfalseになるだけであり、エラーではありません。
入力の読み取り方と整数平方根の正確さの保ち方
2つのうち少なくとも1つは指定する必要があり、両方を指定すると、単一のオブジェクトの中で第n番目の平方数と判定結果の両方が返されます。非負の値には先頭の任意のプラス記号が許可されますが、埋め込まれた空白、16進数のプレフィックス、指数表記は不正なスプレッドシートのセルが誤ったブール値にすり替わることを防ぐため拒否されます。負のnは、平方数の列が0から上に向かってインデックス付けされるため拒否されます。負のvalueは明示的なメッセージとともに拒否されます:平方数は非負整数に対して定義され、このチェッカーは負の数が2乗すると自分自身に戻る実数の整数平方根を持つふりをしません。インデックスフィールドはJSON整数としてのnで、フォームやクエリ文字列が1つの契約を再利用できるよう、index・kというエイリアスも受け付けます。判定フィールドはvalueで、同じ理由でx・numberのエイリアスも受け付けます。内部では、第n番目の平方数はBigIntで掛け算されるため、結果が安全なJSON数値として返される前でも中間の積は正確なままです。整数平方根はBigInt候補に対する二分探索を使い、midの2乗を目標のvalueと比較するため、僅差を誤って平方数と丸めてしまうIEEE倍精度浮動小数点のステップはありません。
平方数の判定が学習・コーディング練習・自動化で果たす役割
このページでは処理はすべてブラウザ内で完結し、API経由では成功した照会1件ごとに$0.002かかり、検証に失敗した場合は課金されず、レスポンスを返した後は何も保存されません。無料のインタラクティブな検証と、同一の結果を返す有料APIというこの分離はKITのtier Aカタログ全体の方針と一致しており、教室でのデモから自動パイプラインへ、数学的な結果を変えることなく移行できます。
技術的な質問
平方数チェッカーの料金は?
このページのブラウザ上では無料です。API経由では成功したリクエストごとに$0.002かかり、無効な入力には課金されません。
第n番目の平方数とは何ですか?
nの2乗です。n=0なら結果は0、n=1なら1、n=2なら4、n=7なら49です。フィールドn(エイリアスindexまたはk)を指定するとnth_squareが得られます。