본문 바로가기

TIL(today i learned)/Projec Euler-수학문제풀이

(4)
[4일차] 세 자리 수 곱해 대칭수(palindrome) 구하기 4일차 문제 앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(palindrome)라고 부릅니다. 두 자리 수를 곱해 만들 수 있는 대칭수 중 가장 큰 수는 9009 (= 91 × 99) 입니다. 세 자리 수를 곱해 만들 수 있는 가장 큰 대칭수는 얼마입니까? 오늘 문제는 비교적 쉬웠고, 빨리 풀 수 있었다. 풀이 로직 for loop을 이용해 900*900 ~ 999*999 값을 생성 각 값을 string으로 변환 string 값을 .reverse().join("")을 활용해 거꾸로 뒤집은 숫자 string으로 변환 string 값과 reverse string 값을 비교하여 같을 경우, array에 push함 Math.max(...Array)를 이용해 최대값을 뽑아냄 let palin..
[챌린지] [3일차] 가장 큰 소인수 구하기 어제는 회사일, 집안일로 정신이 없어 문제 풀이 챌린지에 실패했다ㅠㅠ 오늘은 가장 큰 소인수 구하기 문제에 막혀서 끙끙대는 중... - 문제 - 어떤 수를 소수의 곱으로만 나타내는 것을 소인수분해라 하고, 이 소수들을 그 수의 소인수라고 합니다.예를 들면 13195의 소인수는 5, 7, 13, 29 입니다. 600851475143의 소인수 중에서 가장 큰 수를 구하세요. - 시도 중인 코드 - let prime = []; function findPrime(n){ let factor = []; for (let i = 2; i*i
[챌린지][2일차] 피보나치(Fibonacci) 수열의 합 구하기 오늘은 '프로젝트 오일러' 챌린지 2일차. [1, 2]로 시작하는 수열의 피보나치 수열 중 4백만 이하의 값을 갖는 모든 피보나치 항의 합계 구하기 피보나치(Fibonacci) 수열의 각 항은 바로 앞의 항 두 개를 더한 것입니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다. 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... while문을 사용해 풀었다. let sequence = [0,1], sequence_even = [], n = 0; while(n partialSum+a, 0)); //피보나치 수열 합 : 14930351 console.log('짝수 피보나치 수열 합 : ', sequence_even.reduce((partialSum, a) => partialSum+a..
[챌린지][1일차] 배수의 합 구하기 오늘부터 '프로젝트 오일러' 사이트의 수학 문제를 코드로 풀어보는 챌린지를 시작했다. 평일 기준 매일 1문제씩 자바스크립트를 이용해 아침마다 풀 예정이다. 아래는 1번 문제 10보다 작은 자연수 중에서 3 또는 5의 배수는 3, 5, 6, 9 이고, 이것을 모두 더하면 23입니다. 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면 얼마일까요? 나의 풀이 let factors = []; for (n = 1; n partialSum + a, 0); console.log(sum);