197 Investigating the behaviour of a recursively defined sequence.sf 440 B

123456789101112131415161718192021222324
  1. #!/usr/bin/ruby
  2. # Daniel "Trizen" Șuteu
  3. # Date: 03 March 2018
  4. # License: GPLv3
  5. # https://github.com/trizen
  6. # https://projecteuler.net/problem=197
  7. # Runtime: 0.183s
  8. func a(n) is cached {
  9. return -1 if (n == 0)
  10. floor(2**(30.403243784 - a(n - 1)**2)) * 1e-9
  11. }
  12. for n in (1..Inf) {
  13. if ((a(n ).round(-9) == a(n+2).round(-9)) &&
  14. (a(n+1).round(-9) == a(n+3).round(-9))) {
  15. say (a(n) + a(n+1))
  16. break
  17. }
  18. }