fork(1) download
  1. def pisano(m):
  2. if m == 1:
  3. return 1
  4.  
  5. """
  6. toda sequência tem tamanho par, então posso começar de n = 2 e terminar quando
  7. obter:
  8.  
  9. f_n_minus_1 == 0
  10. f_n == 1
  11. """
  12.  
  13. f_n_minus_1 = 1
  14. f_n = 1
  15. n = 2
  16.  
  17. while not(f_n_minus_1 == 0 and f_n == 1):
  18. f_n_plus_1 = (f_n + f_n_minus_1) % m
  19. f_n_minus_1 = f_n
  20. f_n = f_n_plus_1
  21. n += 1
  22. return n - 1
  23.  
  24. for x in range(1, 11):
  25. print("pisano({}) = {}".format(x, pisano(x)))
Success #stdin #stdout 0.02s 9344KB
stdin
Standard input is empty
stdout
pisano(1) = 1
pisano(2) = 3
pisano(3) = 8
pisano(4) = 6
pisano(5) = 20
pisano(6) = 24
pisano(7) = 16
pisano(8) = 12
pisano(9) = 24
pisano(10) = 60