mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-06 01:18:23 +08:00
Added O(1) Sum of Even Terms of Fibonacci Series
This commit is contained in:
15
Project-Euler/Problem2.js
Normal file
15
Project-Euler/Problem2.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
const SQ5 = 5 ** .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
|
Reference in New Issue
Block a user