홍우진의 개발 일기장

[백준] 2526번: 싸이클/ 파이썬 본문

알고리즘/백준

[백준] 2526번: 싸이클/ 파이썬

홍우진 2022. 10. 7. 21:34
728x90
반응형

문제 링크


https://www.acmicpc.net/problem/2526

 

2526번: 싸이클

두 자연수 N과 P를 가지고  다음 과정을 거쳐서 나오는 수를 차례대로 출력해보자. 처음 출력하는 수는 N이고, 두 번째 이후 출력하는 수는 N을 곱하고 P로 나눈 나머지를 구하는 과정을 반복하여

www.acmicpc.net

풀이 코드


n, p = map(int, input().split())

l = []
a = n

while True:
    a = (a * n) % p
    if a in l:
        print(len(l) - l.index(a))
        break
    l.append(a)

코드 해석


수를 받은 뒤 수를 저장할 리스트를 만들고 a라는 변수의 초기값을 n으로 설정한다.

a 에 (a * n) % p 를 저장하고 만약 리스트 안에 이미 같은 값이 있으면 출력, 없다면 리스트에 값을 추가한다.

728x90
반응형
Comments