整数平方根計算機
82の整数平方根は9です。9の2乗は81で、10の2乗はすでに100になるからです。数十桁の数でも、0以上の整数を入力すれば、切り捨てた平方根をすべての桁まで正確に求めます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 123456789012345678901234567890
- 平方根
- 351364182882014
整数平方根計算機は、平方が入力値を超えない最大の整数を返します。浮動小数点の平方根を丸める方法とは異なり、正確な整数演算を使うため、非常に大きな10進整数でも桁を失いません。この結果はisqrtまたはfloor sqrtとも呼ばれます。非負整数をご入力ください。負数、分数、指数表記、曖昧な入力はエラーになります。
整数平方根の意味
非負整数nの整数平方根とは、rの平方がn以下であり、rに一を加えた値の平方がnより大きくなる唯一の整数rです。通常の平方根を常に切り捨てた値に相当します。81では答えは9です。 82でも、9の平方が81、10の平方が100なので答えは9です。
ゼロはゼロ、一は一になります。数字のみをご入力ください。先頭のプラス記号は任意です。
負数は入力エラーになり、分数と科学的記数法も、正確な整数を対象とする演算なので受け付けません。
Newton反復法で正確な値に到達する仕組み
計算にはNewton法の整数版を使用します。nのビット長から求めた、実際の平方根以上となる二の累乗を初期推定値にします。各反復では、現在値xと、nをxで割った値との平均の整数部分でxを置き換えます。
xが大きすぎると商は小さくなるため、平均値は根へ急速に近づきます。除算と中間値はすべて任意精度整数であり、浮動小数点近似は使いません。次の推定値が小さくならなくなった時点で停止します。
この値は切り捨て平方根の定義を正確に満たし、完全平方数でない値の周囲を往復しません。処理は決定的で、通信、乱数、日時、機種依存の丸めを使用しません。
活用例
因数探索の上限を求める
平方根まで約数を試す際の、正確な最後の候補を計算します。
正方形グリッドを設計する
指定した総数に収まる最大の整数辺長を求めます。
よくある質問
平方根は四捨五入されますか?
いいえ。 常に切り捨て、平方がn以下となる最大の整数を返します。
非常に大きな整数も入力できますか?
はい。 10進文字列として送信してください。任意精度整数で計算します。
82の整数平方根はいくつですか?
9です。9の2乗は81で82を超えませんが、10の2乗は100で82を超えます。整数平方根は、通常の平方根を常に切り捨てた値です。
負の数や小数を入力できますか?
できません。0以上の整数を数字で入力してください。先頭にプラス記号を付けることはできます。負の数、分数、指数表記は、勝手に変えずに受け付けない扱いになります。
結果は自分でどう確かめられますか?
結果を2乗して、元の数を超えないことを確認します。次に結果に1を足して2乗し、今度は元の数を超えることを確認します。この2つがそろえば答えは正しいと言えます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/integer-square-root \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":"123456789012345678901234567890"}'const res = await fetch("https://api.kit.forhosting.com/numth/integer-square-root", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": "123456789012345678901234567890"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/integer-square-root",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": "123456789012345678901234567890"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/integer-square-root", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":"123456789012345678901234567890"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":"123456789012345678901234567890"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/integer-square-root", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": "123456789012345678901234567890"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.integer_square_root",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
整数平方根の意味
計算機は正規化した入力と結果を10進文字列で返すため、JSONクライアントでも全桁が保たれます。
結果を安全に利用する方法
必要に応じて言語の多倍長整数型へ変換できます。約数探索の上限、最大正方形グリッド、整数幾何の検査に利用できます。コンマ、途中の空白、小数点、指数は送信しないでください。nフィールドに非負の10進整数文字列を入れたオブジェクトを送信してください。応答では正規化済みのnとsquare_rootを文字列で返します。JSONで浮動小数点を使う環境では9,007,199,254,740,991を超える整数を正確に表せないため、この形式で精度低下を防ぎます。square_rootの平方がn以下であり、square_rootに一を加えた値の平方がnを超えることをご確認ください。負数はinvalid_inputを返します。APIリクエストごとの料金は$0.002です。
連携の活用例
巨大整数を正確に処理する
通常のJSON数値では保持できない値の切り捨て平方根を計算します。
技術的な質問
負数を入力するとどうなりますか。
定義域外のため、invalid_inputエラーを返します。
結果が文字列なのはなぜですか。
JSON環境で巨大な整数が丸められないよう、正確な10進表現を保つためです。
APIリクエストの料金はいくらですか。
基本料金はリクエストごとに$0.002です。