└── 05_project_euler ├── 01-problem-multiples-of-3-and-5.js ├── 02_even_fibonacci_numbers.py └── 04-problem-largest-palindrome-product.js /05_project_euler/01-problem-multiples-of-3-and-5.js: -------------------------------------------------------------------------------- 1 | // Problem 1: Multiples of 3 and 5 2 | // If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. 3 | // Find the sum of all the multiples of 3 or 5 below the provided parameter value number. 4 | 5 | function multiplesOf3and5(number) { 6 | let sum = 0; 7 | for (let i = 0; i < number; i++) { 8 | if(i % 3 === 0 || i % 5 === 0) { 9 | sum +=i 10 | } 11 | } 12 | return sum; 13 | } 14 | 15 | multiplesOf3and5(1000); -------------------------------------------------------------------------------- /05_project_euler/02_even_fibonacci_numbers.py: -------------------------------------------------------------------------------- 1 | number1 = 1 2 | number2 = 2 3 | summation = 0 4 | while number2 < 4000000: 5 | summation += number2 6 | number1, number2 = number2, number1 + number2 7 | number1, number2 = number2, number1 + number2 8 | number1, number2 = number2, number1 + number2 9 | print(summation) 10 | -------------------------------------------------------------------------------- /05_project_euler/04-problem-largest-palindrome-product.js: -------------------------------------------------------------------------------- 1 | function largestPalindromeProduct(n) { 2 | // Good luck! 3 | let lowerBound = Math.pow(10, n - 1); 4 | let upperBound = Math.pow(10, n) - 1; 5 | let maxPalindrome = 0; 6 | 7 | for (let i = Math.pow(10, n - 2) * 11; i <= upperBound; i = i + 11) { 8 | for (let j = lowerBound; j <= upperBound; j++) { 9 | let number = i * j; 10 | if (number > maxPalindrome) { 11 | if (isNumPalindrome(number)) { 12 | maxPalindrome = number; 13 | } 14 | } 15 | } 16 | } 17 | return maxPalindrome; 18 | } 19 | 20 | function isNumPalindrome(num) 21 | { 22 | let textNum = num.toString(); 23 | let left = 0; 24 | let textNumLength = textNum.length - 1; 25 | // Keep comparing characters while they are same 26 | while (left < textNumLength) { 27 | if (textNum[left] != textNum[textNumLength]) { 28 | return false; 29 | } 30 | left++; 31 | textNumLength--; 32 | } 33 | return true; 34 | } 35 | 36 | largestPalindromeProduct(3); 37 | --------------------------------------------------------------------------------