PR - 소수찾기[실패]
문제
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.
소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
(1은 소수가 아닙니다.)
예시
n | result |
---|---|
10 | 4 |
5 | 3 |
풀이
- 2부터
n
까지 순회하면서isPrime
함수에i
를 넣고 실행한다. isPrime
함수 안에서는 2부터i
의 제곱근까지 순회하면서i
가 다른 자연수로 나누어 떨어지는지 검사하고, 나누어 떨어지면false
, 아니면true
를 반환한다.
코드
function solution(n) {
let answer = 0;
for(let i = 2; i <= n; i++) {
if(isPrime(i)) answer++;
}
return answer;
}
function isPrime(n) {
for (let i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) return false;
}
return true;
}
회고
정확성은 100점인데 효율성이 0점이 나오는 걸 보면
시간복잡도를 좀 더 줄여야 하나보다.
Author And Source
이 문제에 관하여(PR - 소수찾기[실패]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@goody/PR-소수찾기실패저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)