Top
yukicoder No.1162 "Many Quotients hard"
正の整数 $N$ が与えられます。
$\displaystyle \left\lfloor \frac{N}{1} \right\rfloor, \left\lfloor \frac{N}{2} \right\rfloor, \cdots, \left\lfloor \frac{N}{N} \right\rfloor$ の $N$ 個の整数は全部で何種類ですか。
・$1 \le N \le 10^{18}$

$N$ の平方根の整数部分を $sq$ とする。
分母が $sq$ 以下のときには、商が全て異なりその値が $sq$ 以上であるものが $sq$ 種類存在する。
分母が $sq$ 以上のときには、商が $sq$ 以下であるものが $sq$ 種類全て存在する。

分母が $sq$ のときに、商が $sq$ のものを重複して数えている可能性がある。
これは $N$ が平方数でなくとも起こりえる。例えば $\displaystyle \left\lfloor \frac{17}{4} \right\rfloor = 4$ のとき。

#!/usr/bin/env python3
# †
from math import isqrt

def f(N):
    sq = isqrt(N)
    res = sq * 2
    if N//sq == sq:
        res -= 1
    return res

###
if __name__ == '__main__':
    N = int(input())
    res = f(N)
    print(res)
    

(ΦωΦ)<おしまい