目次

コラッツ予想

コラッツ予想を確かめるための、プログラムを書いておきます。

import sys
import sympy
 
#------------------------------------
#実行時引数例 collatz.py 100 so
# 第一引数:正の整数
# 第二引数:「so」or'' soの場合、素因数分解を行う
#-----------------------------------
 
opt =""
try :
       cal = int(sys.argv[1])
       opt = sys.argv[2]
except IndexError :
        pass
except Exception  :
        print("No Integer")
 
if type(cal) is int :
        if cal > 10000000000000000000000000000000000000000000000000 :
                print("Out of Range")
                sys.exit(100)
else :
        sys.exit(1)
 
if opt == "so" :
        nyo = True
else :
        nyo = False
 
print(cal)
print(bin(cal))
print(oct(cal))
print(hex(cal))
if nyo :
        print(sympy.factorint(cal))
 
while cal != 1 :
        if cal % 2 == 0 :
                cal = cal // 2
        else :
                cal = (cal * 3) + 1
 
        print(cal)
        print(bin(cal))
        print(oct(cal))
        print(hex(cal))
        if nyo :
                print(sympy.factorint(cal))

このプログラムをWEBページで実行できるようにしたのがここ。