Merge pull request #448 from Abhi13027/master

feat: Added O(1) Sum of Even Terms of Fibonacci Series Algorithm
This commit is contained in:
Omkarnath Parida
2020-10-10 18:25:05 +05:30
committed by GitHub

16
Project-Euler/Problem2.js Normal file
View File

@ -0,0 +1,16 @@
const SQ5 = 5 ** 0.5
// Square root of 5
const PHI = (1 + SQ5) / 2
// definition of PHI
// theoretically it should take O(1) constant amount of time as long
// arithmetic calculations are considered to be in constant amount of time
function EvenFibonacci (limit) {
const highestIndex = Math.floor(Math.log(limit * SQ5) / Math.log(PHI))
const n = Math.floor(highestIndex / 3)
return ((PHI ** (3 * n + 3) - 1) / (PHI ** 3 - 1) -
((1 - PHI) ** (3 * n + 3) - 1) / ((1 - PHI) ** 3 - 1)) / SQ5
}
console.log(EvenFibonacci(4e6))
// Sum of Even Fibonnaci upto 4 Million