목차

정확해

ps
링크acmicpc.net/…
출처BOJ
문제 번호1457
문제명정확해
레벨골드 1
분류

수학

시간복잡도O(sqrt(A+B))
인풋사이즈A<10^6, B<10^7
사용한 언어Python
제출기록31312KB / 72ms
최고기록64ms
해결날짜2021/06/10

풀이

코드

"""Solution code for "BOJ 1457. 정확해".

- Problem link: https://www.acmicpc.net/problem/1457
- Solution link: http://www.teferi.net/ps/problems/boj/1457
"""

import math


def sigma_d(num, exp):
    if num == 0:
        return 0
    sqrt = math.isqrt(num)
    answer = 2 * sum(num // i for i in range(1, sqrt + 1)) - sqrt * sqrt
    i = 1
    while (x := i**exp) <= num:
        answer -= num // x
        i += 1
    answer -= num - 1
    return answer


def main():
    A, B, N = [int(x) for x in input().split()]
    print(sigma_d(A + B, N) - sigma_d(A - 1, N))


if __name__ == '__main__':
    main()