늘 겸손하게

JavaScript - 소수 판별 본문

Algorithm

JavaScript - 소수 판별

besforyou999 2022. 7. 15. 15:23

주어진 숫자 number가 소수인지 아닌지 판별하는 단순한 코드

 

2부터 number까지의 숫자로 number를 나누어 보고 나머지가 존재하면 false를 반환하고, 나머지가 존재하는 경우가 없으면 true를 반환하는 함수

 

1
2
3
4
5
6
7
8
9
10
const isPrime = function(number) {
  if (number <= 1return false;
  if (number === 2return true;
  for (let i = 2 ; i <= number ; i++) {
    if (number % i === 0) {
      return false;
    }
  }
  return true;
}
cs

 

 

하지만 위 함수보다 더 효율적인 함수가 있다.

 

1
2
3
4
5
6
7
8
9
10
11
const isPrime = function(number) {
  if (number <= 1return false;
  if (number === 2return true;
  for (let i = 2 ; i <= Math.floor(Math.sqrt(number)) ; i++) {
    if (number % i === 0) {
      return false;
    }
  }
  return true;
}
 
cs

 

원리 : 에라토스테네스의 체

https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4

 

에라토스테네스의 체 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

 

'Algorithm' 카테고리의 다른 글

LIS - 최장 증가 부분 수열  (2) 2022.09.20
정렬 알고리즘 정리 - Python  (1) 2022.09.20
JavaScript - 순열, 조합  (0) 2022.07.15
기초 알고리즘 요약  (0) 2022.05.13
자료구조 - Priority Queue ( 우선순위 큐 )  (0) 2022.02.09