1001人を殺して命を償わない(3 n+1)推測(python 3)

1771 ワード

カラズ(Callatz)の推測:
いずれかの正の整数nに対して、偶数であれば、半分を切ります.奇数であれば(3 n+1)を半分切ります.こうやって切り落としを繰り返し、最後には必ずある一歩でn=1を得る.カラズは1950年の世界数学者大会でこの推測を発表した.当時、エール大学の教師と学生が一斉に動員され、馬鹿みたいで無邪気な命題を証明しようとしたが、結局学生たちは学業に専念せず、ひたすら証明しただけだったという.(3 n+1)陰謀だという人もいる.カラズは米国の数学界の教育と科学研究の進展を遅らせようとしたのだ.
私たちの今日のテーマはカラズの推測を証明するのではなく、与えられたいずれかの1000を超えない正の整数nに対して、簡単に数えて、n=1を得るにはどのくらいのステップ(何回切る)が必要ですか?入力形式:
各テスト入力には、正の整数nの値を与えるテスト例が1つ含まれる.出力フォーマット:
nから1までの計算に必要なステップ数を出力します.サンプルを入力:
3

出力サンプル:
5

python 3
a = eval(input())
sum = 0
if 1<=a<=1000:
    while a!=1:
        if a%2==0:
            a /= 2
            sum += 1
        else:
            a = (3*a+1)/2
            sum += 1
    print(str(sum))
else:
    print(" ")