[R5E] 余数和
- 难度 入门
- 时限 1s
- 空限 512m
- 数学
思路
所以 。
只有 种取值,按相同的商分块:对块 (),商为 ,贡献为 。
复杂度:时间 ,空间 。
仓颉实现
import std.convert.*
import std.env.*
main() {
let reader = getStdIn()
let n = Int64.parse(reader.readln().getOrThrow())
var total: Int64 = 0
var l: Int64 = 1
while (l <= n) {
let q = n / l
let r = n / q
total += q * (l + r) * (r - l + 1) / 2
l = r + 1
}
println(n * n - total)
}