コラッツ数列を使用して、数値がいつゼロになるかを計算するプログラムを作成しようとしています。そのプログラムの私のコードは次のとおりです。
import time
def run(z):
while z != 1:
if isEven(z) == True:
z = z/2
print z
else:
z = (3*z)+1
print z
else:
print 'Got one!'
z = z+1
print 'Trying for %d...' %(z)
time.sleep(0.1)
run(z)
def isEven(number):
return number % 2 == 0
run(z)
ただし、z
が 2 を超えることはなく、印刷を続けるだけです。
Got one!
Trying for 2...
1
Got one!
Trying for 2...
1
など...誰かが私が間違っていることを教えてもらえますか?