mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-05 16:26:47 +08:00
Update Euler Problem 2 to ES6 standards (#468)
* update Problem 2 to ES6 standards Fixes: #{14} * add link to problem
This commit is contained in:
@ -1,16 +1,13 @@
|
||||
const SQ5 = 5 ** 0.5
|
||||
// Square root of 5
|
||||
|
||||
const PHI = (1 + SQ5) / 2
|
||||
// definition of PHI
|
||||
// https://projecteuler.net/problem=2
|
||||
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 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
|
||||
console.log(EvenFibonacci(4e6)) // Sum of even Fibonacci upto 4 Million
|
||||
|
Reference in New Issue
Block a user