1937λ Collatzλ μ¬λμ μν΄ μ κΈ°λ μ΄ μΆμΈ‘μ, μ£Όμ΄μ§ μκ° 1μ΄ λ λκΉμ§ λ€μ μμ μ λ°λ³΅νλ©΄, λͺ¨λ μλ₯Ό 1λ‘ λ§λ€ μ μλ€λ μΆμΈ‘μ΄λ€. μμ μ λ€μκ³Ό κ°λ€. 1-1. μ λ ₯λ μκ° μ§μλΌλ©΄ 2λ‘ λλλ€. 1-2. μ λ ₯λ μκ° νμλΌλ©΄ 3μ κ³±νκ³ 1μ λνλ€. 2-1. κ²°κ³Όλ‘ λμ¨ μμ κ°μ μμ μ 1μ΄ λ λκΉμ§ λ°λ³΅νλ€. μλ₯Ό λ€μ΄, μ λ ₯λ μκ° 6μ΄λΌλ©΄ 6β3β10β5β16β8β4β2β1 μ΄ λμ΄ μ΄ 8λ² λ§μ 1μ΄ λλ€. μ μμ μ λͺ λ²μ΄λ λ°λ³΅ν΄μΌνλμ§ λ°ννλ ν¨μλ₯Ό μμ±νλΌ. λ¨, μμ μ 500λ²μ λ°λ³΅ν΄λ 1μ΄ λμ§ μλλ€λ©΄ β1μ λ°ννλΌ.
num
μ 1 μ΄μ 8000000 λ―Έλ§μΈ μ μμ΄λ€.def collatz(num):
if num == 1:
return 0
for i in range(1, 501):
num = num / 2 if not num % 2 else num * 3 + 1
if num == 1:
return i
return -1
μ΄λ² λ¬Έμ λ μμνκ² νμ΄λΌ μ μμλ€. μ£Όμν΄μΌν μ μ΄ μλ€λ©΄ μ λ ₯κ°μ΄ 1μΈ κ²½μ°λ μμ μ λ€μ΄κ° νμκ° μμΌλ―λ‘ 0μΌλ‘ λ°λ‘ μ³λ΄μΌ νλ€λ μ μ΄λ€.