콜라츠 추측 (Collatz's Conjecture)
어떤 자연수에 대해서, 다음 작업을 반복하면 1로 만들 수 있다는 추측이다.
처음 수 가 홀수라면 -> 3을 곱하고 1을 더한다. ()
처음 수 가 짝수라면 -> 2로 나눈다. ()
이를 반복하여 이 되면 종료한다.
500회 이상 반복해도 1이 안되면 -1
처음 수가 1 ()인 경우는 0
이외에는 1을 만들기까지 반복한 횟수 (에서 )을 출력
def solution(num):
answer = 0
while num > 1:
if num%2 == 0:
num /= 2
answer += 1
continue
if num%2 != 0:
num = 3*num + 1
answer += 1
continue
if answer > 500:
return -1
if num == 1 and answer == 0:
return 0
return answer