まずは,調べるという精神で,順番に割って整数部分を取り出してみます。
803/1= 803 -> 803,803/2 = 401.5 -> 401,803/3 = 267.66… -> 267,803/4 = 200.75 -> 200,803/5= 160.6 -> 160,...
これを見ると,どうも割った回数だけ異なる整数が出てくるように見えます。
しかし,いつまでもこれが続くかというとそうではなく,例えば,
803/30= 26.76… -> 26,803/31 = 25.90… -> 25,803/32 = 25.09… -> 25,803/33= 24.33… -> 24,803/34 = 23.61… -> 23,...
となって,同じ整数が出てくることもあります。
これはどうしてかというと,803/○ はいわゆる反比例のグラフを描くので,
○ がある程度大きくなると,803/○ の値自体はどんどん小さくなり,803/○ と 803/(○ + 1) の差もどんどん小さくなり,
この差が,隣り合う整数の差 1 より小さくなると同じ整数が出て来る可能性があるからです。
またこのとき,差が隣り合う整数の差より小さいのですから,当然ですが,すべての整数が現れます。
そこで,803/○ と803/(○ + 1) の差が最初に 1 より小さくなるような ○ を見つけてやれば,
○ 以下の数で割った場合には,割った数だけの異なる整数が現れ,
○ より大きな数で割った場合には,803/(○ + 1) の整数部分以下の正の整数がすべて現れます。
そこで,先程の計算より,このような ○ は 30 より小さくその付近と思われるので,その辺りで探してみると,
803/27= 29.74… -> 29,803/28 = 28.67… -> 28,803/29 = 27.68… -> 27,803/30= 26.76… -> 26,803/31 = 25.90… -> 25,...
となって,○ = 28 と思われます。実際,
803/27- 803/28 = 803/(27 * 28) = 803/756 > 1
803/28- 803/29 = 803/(28 * 29) = 803/812 < 1
で,○ は 28 に決定します。
そこで,出力される整数は 28 + 27 = 55 種類 になります。
数学としては,
803/○ - 803/(○ + 1) < 1,○^2 + ○ -803 > 0,○ > (- 1 + √3213)/2 = 27.84…,○ = 28
ですね。
*いつも懇切丁寧でありがたいです☆
・鯨鯢(Keigei) さんのもの Orz〜
[√(4・803+1)]−1=[√3213]−1=56−1=55 です。
[n/1],[n/2],[n/3],[n/4],……,[n/n] の整数は何種類かを求めます。
(k−1)k≦n を満たす最大の自然数 k について、
[n/1]>[n/2]>[n/3]>……>[n/(k−1)]>[n/k] と [n/k] 未満の自然数すべての k+[n/k]−1 種類の数が現れます。
ここで、(k−1)k≦n<k(k+1) だから、k−1≦n/k<k+1 、[n/k]=k−1,k で、
(k−1)k≦n<k^2 のとき [n/k]=k−1 ,k^2≦n<k(k+1) のとき [n/k]=k です。
(k−1)k≦n<k^2 のとき、
(k−1)k≦n≦k^2−1 、(2k−1)^2≦4n+1≦4k^2−3 、2k−1≦√(4n+1)<2k 、 [√(4n+1)]=2k−1 になります。
このとき、k+[n/k]−1=k+(k−1)−1=[√(4n+1)]−1 です。
k^2≦n<k(k+1) のとき、
4k^2+1≦4n+1<(2k+1)^2 、2k<√(4n+1)<2k+1 、 [√(4n+1)]=2k になります。
このとき、k+[n/k]−1=k+k−1=[√(4n+1)]−1 です。
従って、いずれの場合も、[√(4n+1)]−1 種類です。
*熟読玩味ぃ〜♪