proc getchar_unlocked():char {. importc:"getchar_unlocked",header: "" .} proc scan(): int = while true: let k = getchar_unlocked() if k < '0': break result = 10 * result + k.ord - '0'.ord proc solve(n:int):int = if n == 0 : return 1 if n <= 15: return solve(n div 3) + solve(n div 5) # (3 5) (3 5) => (9 15 15 25) if n <= 225: return 2 * solve(n div 15) + solve(n div 25) + solve(n div 9) # (3 5) (3 5) (3 5) => (9 2*15 25)(3 5) => (27 3*45 3*75 125) return 3 * solve(n div 75) + 3 * solve(n div 45) + solve(n div 125) + solve(n div 27) echo solve(scan())