コラッツ予想を確かめるための、プログラムを書いておきます。
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ページで実行できるようにしたのがここ。