문제 출처: https://www.acmicpc.net/problem/2526
Bronze 2
반복되는 시점을 찾기만 하면 되기 때문에 리스트에 넣고 나중에 반복되는 시점을 찾아 전체 array 사이즈에서 뺐다.
if __name__ == '__main__':
N, P = map(int, input().split())
arr = []
arr.append(N)
x = N
while True:
x = (x * N) % P
if x not in arr:
arr.append(x)
else:
break
idx = 0
for i in range(len(arr)):
if x == arr[i]:
idx = i
break
print(len(arr)-idx)