235 An Arithmetic Geometric sequence.sf 529 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/usr/bin/ruby
  2. # Daniel "Trizen" Șuteu
  3. # License: GPLv3
  4. # Date: 27 September 2017
  5. # https://github.com/trizen
  6. # https://projecteuler.net/problem=235
  7. # Runtime: 0.162s
  8. const n = 5000
  9. const u = -600000000000
  10. var r1 = 1
  11. var r2 = 2
  12. while (r1 <= r2) {
  13. var r = ((r1+r2) / 2)
  14. var v = (((3*(n-299) * r**n) - (3*(n-300) * r**(n+1)) - 900*r + 897) / (r - 1)**2 - u)
  15. if (abs(r1 - r2) < 1e-14) {
  16. printf("%.12f\n", r1)
  17. break
  18. }
  19. if (v > 0) {
  20. r1 = r
  21. }
  22. else {
  23. r2 = r
  24. }
  25. }