[Recursion]을 써서 만들었습니다.

--- ["yong27"] 님 감사합니다.

Toggle line numbers
   1 def ThreePlusOne(n, count=0):
   2     count += 1
   3     if n==1:
   4         return count
   5     elif n%2==0:
   6         return ThreePlusOne(n/2, count) # return을 빼먹으면 None이  리턴
   7     else:
   8         return ThreePlusOne(n*3+1, count) #return을 빼먹으면 None이 리턴
   9         
  10 def main():
  11     i, j = raw_input().split()
  12 
  13     b = 0
  14     for a in range(int(i), int(j)+1):
  15         temp = ThreePlusOne(a)
  16         if b < temp: b = temp
  17     print i, j, b
  18 
  19 if __name__ == '__main__':
  20     #import psyco
  21     #psyco.bind(main)
  22     main()

속도를 재서 다른 분들과 비교해 봤습니다. input이 1 999999 일때.

작성자

걸린시간

[Psyco]를 쓴 후 걸린 시간

mgenome

164초

10초

yong27

82초

8.6초

windist

9.5초

3.5초

3N+1Problem 참조

web biohackers.net