백준 1612 가지고 노는 1 (Python, Pypy)

Joowan Park·2023년 7월 31일
0

코딩

목록 보기
15/28
post-custom-banner
#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으로 나누어주면서 큰 수가 나오지 않도록 막아주는것이 중요한 포인트가 되겠다.

profile
Complex Dynamics에서 탈출한 원숭이

0개의 댓글