結果
問題 | No.1260 たくさんの多項式 |
ユーザー |
|
提出日時 | 2020-10-17 15:05:07 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 191 ms / 2,000 ms |
コード長 | 843 bytes |
コンパイル時間 | 212 ms |
コンパイル使用メモリ | 81,792 KB |
実行使用メモリ | 61,056 KB |
最終ジャッジ日時 | 2024-07-21 02:31:14 |
合計ジャッジ時間 | 8,935 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 61 |
ソースコード
n = int(input())mod = 10 ** 9 + 7ans = 0# 次数が2次以上# nをi進数に直すイメージfor i in range(2, int(n ** .5) + 1):now = nwhile now > 0:ans += now % i # 下の桁から埋めるnow //= ians += nowans %= mod# i * x + jを考えるsq = int(n ** .5) + 1for i in range(1, sq):l = n // (i + 1) + 1 # xの係数がiである数のうち、最も小さいif l < sq: # これは2次以上で数えたbreakr = n // i # 最もでかいm = r - l + 1one = i * m # xの係数の合計# 0次の係数について考える# 区間[l, r]の数は連続してるので、総和でうまくいける# 初項n % r, 公差i 項数 m → 総和zero = m * (2 * (n % r) + (m - 1) * i) // 2 % modans = (ans + one + zero) % modprint(ans)