Advertisement
cardel

2n+1 Python

Apr 2nd, 2022
887
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.10 KB | None | 0 0
  1. import sys
  2. sys.setrecursionlimit(100000)
  3. conteo =dict()
  4.  
  5. def funcion(n):
  6.     if n == 1:
  7.         return 1
  8.     else:
  9.         if n % 2 == 0:
  10.             if conteo.get(int(n/2))!=None:
  11.                 return conteo[int(n/2)]+1
  12.             else:
  13.                 return 1+funcion(int(n/2))
  14.         else:
  15.             if conteo.get(3*n+1)!=None:
  16.                 return conteo[3*n+1]+1
  17.             else:
  18.                 return 1+funcion(3*n+1)
  19. while True:
  20.     try:
  21.         entrada = input()
  22.         entradaS = list(filter(lambda x:x!='',entrada.split(" ")))
  23.        
  24.         if(len(entradaS)==2):
  25.  
  26.             i = int(entradaS[0])
  27.             j = int(entradaS[1])
  28.             finali,finalj=i,j
  29.             if i>j: i,j=j,i
  30.            
  31.             max = 0
  32.             for n in range(i,j+1):
  33.                 if conteo.get(n)==None:
  34.                     cnt = funcion(n)
  35.                     conteo[n]=cnt
  36.                 else:
  37.                     cnt = conteo[n]
  38.                 if cnt>max:
  39.                     max=cnt
  40.             print(finali,finalj,max)
  41.     except EOFError:
  42.         break
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement