fork download
  1. import math
  2.  
  3. # 数式で解いてみた
  4. def solve( a, b, c ):
  5. p = 1.61803398874989484820458683436563811772030917980576286213544
  6. q = 2.23606797749978969640917366873127623544061835961152572427089
  7. d = a + b * p
  8. m = int(round(math.log(q * p * c / d, p)))
  9. z = int(round(math.pow(p, m - 1) * d / q))
  10. return m if z == c else False
  11.  
  12. def ask( a, b, c ):
  13. print( '({},{},{}) => {}'.format( a, b, c, solve( a, b, c ) ) )
  14.  
  15. # Fibonacci Number: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... , 102334155, ...
  16. ask( 1, 1, 143 )
  17. ask( 1, 1, 144 )
  18. ask( 1, 1, 145 )
  19. ask( 1, 1, 102334154 )
  20. ask( 1, 1, 102334155 )
  21. ask( 1, 1, 102334156 )
  22.  
  23. # Fibonacci Number? : 7, 15, 22, 37, 59, 96, 155, ...
  24. ask( 7, 15, 154 )
  25. ask( 7, 15, 155 )
  26. ask( 7, 15, 156 )
Success #stdin #stdout 0.01s 27656KB
stdin
Standard input is empty
stdout
(1,1,143) => False
(1,1,144) => 11
(1,1,145) => False
(1,1,102334154) => False
(1,1,102334155) => 39
(1,1,102334156) => False
(7,15,154) => False
(7,15,155) => 6
(7,15,156) => False