No.781 円周上の格子点の数え上げ

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 通常問題
タグ : / 解いたユーザー数 54
作問者 : startcppstartcpp / テスター : はむこはむこ
0 ProblemId : 1709 / 出題時の順位表

問題文

$xy$平面上に, 原点$O$を中心とする半径$\sqrt R$の円があるとき, 円周上にある格子点の個数を$f(R)$とおく。
格子点は, $x$座標$y$座標がともに整数の点である。
たとえば, $f(1) = 4, f(5) = 8, f(25) = 12$である。

$R$の最小値$X$, 最大値$Y$が与えられるので、$max(f(X), f(X+1), …, f(Y))$を求めよ。ただし, $X=Y$のときは$f(X)$を求めよ。

入力

X Y

$X$, $Y$は整数である.
$1 \le X \le Y \le 10^7$

出力

$f(X)$~$f(Y)$の最大値を出力してください。ただし, f(整数)のみ考えます。
最後に改行してください。

サンプル

サンプル1
入力
25 25
出力
12

$25$の平方根のうち正の方は$5$です。
半径$5$の円(原点中心)の円周上には, $12$個の格子点があります。
したがって、$f(25) = 12$となります。

サンプル2
入力
1 50000
出力
64

$f(1)~f(50000)$までの最大値は, $f(27625) = 64$です。

サンプル2
入力
33455 37510
出力
48

$f(33455)~f(37510)$までの最大値は, $f(34450) = 48$です。

提出ページヘ
下のフォームでの入力は、テキストボックスにフォーカスがない場合は、(Onにしている場合)ショートカットキー・スマートサブミットの影響を受けるので、必要なら提出ページに遷移してください。

言語
問題によって提出できない言語があります。参考
ソースコード
ソースコードのテキストボックスに文字がある場合はファイルは無視されます。
テキストボックスで提出するとCR(\r)が除去されますが、ファイルで提出すると除去されません。