코딩

[BOJ] 백준 1612 가지고 노는 1 Python

척척석사아님 2023. 10. 27. 11:35
728x90
#1612 가지고 노는 1
import sys

input = sys.stdin.readline
N = int(input())
if N == 1:
    print(1)
elif N % 2 == 0 or N % 5 == 0:
    print(-1)
else:
    x = 1
    time = 1
    while x != 0:
        x += (9*x + 1) % N
        x = x % N
        time += 1
    print(time)

10^n을 계속해서 더하면 되는 것이므로,
1 -> (9 x 1 + 1) + 1 = 11 - > (11 x 9 + 1) + 11 = 111 -> ... 꼴로 나타내어줄 수 있다.


항상 N으로 나누어주면서 큰 수가 나오지 않도록 막아주는것이 중요한 포인트가 되겠다.