풀이
주어진 규칙에 따라 수열을 구하다보면 반복되는 수열이 나타난다는 점을 활용해서 문제를 해결해야한다.
반복되는 수열이 다시 나타난다는 점은 이미 생성된 수열에 중복되는 숫자가 있다는 의미다.
때문에 그 숫자를 기준으로 앞선 수열을 슬라이싱하여 그 길이를 출력해주면 해결할 수 있다.
소스코드
import sys
input = sys.stdin.readline
a, p = map(int, input().split())
d = [a]
while True:
temp = sum([int(i)**p for i in str(d[-1])])
if temp in d:
print(len(d[:d.index(temp)]))
break
else:
d.append(temp)