package main import . "fmt" func main() { var n int Scan(&n) m := map[int]bool{} for i := 1; i * i <= n; i++ { if n%i == 0 { m[i] = true m[n/i] = true } } Println(len(m)) } func solve(n int) int { // 隣り合う整数 X X+1 // XがC個、X+1がD個 (C >= 1 && D >= 1) // LEN = C + D (LEN > D && LEN > C) // N = X*C+(X+1)*D = X*(C+D) + D = X*LEN + D // うーん、N-D=X*LEN m := map[int]bool{} for x := 1; x*x <= n; x++ { if n % x == 0 { m[n/x] = true m[x] = true } else { l := n/x for d := n%x; d < l; d += x { m[(n-d)/x] = true } } } // Println(m) // 約数の数? return len(m) }