목차

수학은 재밌어

ps
링크acmicpc.net/…
출처BOJ
문제 번호19577
문제명수학은 재밌어
레벨플래티넘 5
분류

정수론

시간복잡도O(n^1/3 * n^1/2)
인풋사이즈n<=10^9
사용한 언어Python 3.11
제출기록33376KB / 44ms
최고기록40ms
해결날짜2023/02/08

풀이

코드

"""Solution code for "BOJ 19577. 수학은 재밌어".

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

Tags: [Number theory]
"""

import math
from teflib import numtheory


def euler_phi(n):
    for p in numtheory.prime_factorization_small(n):
        n -= n // p
    return n


def main():
    n = int(input())
    for i in range(1, math.isqrt(n) + 1):
        if n % i == 0 and euler_phi(n // i) == i:
            print(n // i)
            break
    else:
        print('-1')


if __name__ == '__main__':
    main()