문제
코드
function solution(begin, end) {
const ans = []
for(let i=begin; i<=end; i++) {
ans.push(calculate(i))
}
return ans;
}
function calculate(n) {
if(n === 1) return 0;
const result = [];
for(let i=2; i <= Math.sqrt(n); i++) {
if(!(n%i)) {
result.push(i);
if(n/i <= 10000000) return n/i;
}
}
return result.length ? result[result.length-1] : 1;
}
풀이
- 제한이
10,000,000
라는 것을 간과하고 있다가 계속 실패했다.(저런 거 좀 빨간 글씨 h1으로 좀 써놔라ㅡㅡ)
약수를 구하는 공식
- 자주 나오는 약수 구하는 방법
- 모든 수 다 따지거나 절반까지 따져도 시간초과 나는 경우가 많다.
- 제곱근 까지의 약수를 구하면 모든 약수를 구할 수 있다. 이런 거 중딩 때좀 알려주지 ㅉㅉ
- 문제 자체는 간단하고 쉬워서 이런 문제는 코테에 안 나오면 좋겠다. 왜냐면 난 틀렸기 때문이다.