wiki:dokuwiki:py:コラッツ予想

コラッツ予想

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

  1. import sys
  2. import sympy
  3.  
  4. #------------------------------------
  5. #実行時引数例 collatz.py 100 so
  6. # 第一引数:正の整数
  7. # 第二引数:「so」or'' soの場合、素因数分解を行う
  8. #-----------------------------------
  9.  
  10. opt =""
  11. try :
  12. cal = int(sys.argv[1])
  13. opt = sys.argv[2]
  14. except IndexError :
  15. pass
  16. except Exception :
  17. print("No Integer")
  18.  
  19. if type(cal) is int :
  20. if cal > 10000000000000000000000000000000000000000000000000 :
  21. print("Out of Range")
  22. sys.exit(100)
  23. else :
  24. sys.exit(1)
  25.  
  26. if opt == "so" :
  27. nyo = True
  28. else :
  29. nyo = False
  30.  
  31. print(cal)
  32. print(bin(cal))
  33. print(oct(cal))
  34. print(hex(cal))
  35. if nyo :
  36. print(sympy.factorint(cal))
  37.  
  38. while cal != 1 :
  39. if cal % 2 == 0 :
  40. cal = cal // 2
  41. else :
  42. cal = (cal * 3) + 1
  43.  
  44. print(cal)
  45. print(bin(cal))
  46. print(oct(cal))
  47. print(hex(cal))
  48. if nyo :
  49. print(sympy.factorint(cal))

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

  • wiki/dokuwiki/py/コラッツ予想.txt
  • 最終更新: 2024/11/04 00:47
  • by 127.0.0.1