Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 배열뒤집기
- Javascript
- 운동
- Programmers
- 리엑트
- 프레임워크
- 머쓱이
- MPA
- reduce함수
- 프로그래머스
- axios
- 코딩연습
- 코딩문제
- 오름차순
- 반복문
- threejs
- 자바스크립트
- React-Three-Fiber
- 코딩테스트
- for문
- react
- 코딩
- 코딩공부
- 코딩입문
- 웹팩
- CSS
- 자바스크립
- 헬스
- codingtest
- map함수
Archives
- Today
- Total
SG의 개발 공부로그
소수 판별하는 방법 [자바스크립트 알고리즘] 본문
728x90
javascript 로 소수 구하는 방법
소수는
1과 자신만으로만 나누어서 나머지값이 0 인 (나누어 떨어지는)
1보다 큰 양의 정수를 말한다.
여기서 1 과 음수는 소수가 아니다.
소수 판별하는 방법중에 먼저 단순한 방법
모든 수를 판별하는 방법
function solution (num) {
if(!num || num === 1) return false;
for (let i = 2; i < num; i++) {
if (num % i === 0) return false;
}
return true;
}
1이면 바로 false를 retrurn 시키고 아니면,
2부터 num 까지의 수를 전부 반복해서,
조건에 일치하는 수가 있는지 확인한다.
하지만 모든 수를 돌려야하기 때문에 num 값이 커지면 시간복잡도 문제로 좋지 않다.
절반만 돌리는 방법
function solution (num) {
if(!num || num === 1) return false;
for (let i = 2; i <= num/2; i++) {
if (num % i === 0) return false;
}
return true;
}
num 의 약수는 자신의 절반을 넘을 수 없다.
약수구하는 법은 하단링크참조
약수 구하는 방법 [자바스크립트 알고리즘]
javascript 약수 구하기 산에 있는 약수.. 이미지는 드립ㅎㅎ javascript 로 약수구하는 법을 알아보자! 약수 = 인수를 나누어 떨어지게 하는 수 처음에는 먼저 단순한 방법인 모든 수를 나눠서 구하는
sg-coding.tistory.com
첫번재의 모든 수를 돌려서 판별하는 것보다 퍼포먼스가 좋아졌다.
하지만 더 좋은 방법이 있다.
제곱근을 사용하는 방법
function solution (num) {
if(!num || num === 1) return false;
for (let i = 2; i <= Math.sqrt(num); i++) {
if (num % i === 0) return false;
}
return true;
}
Math.sqrt () 함수를 써서 제곱근을 활용한다.
num 의 제곱근보다 작은 수들을 다 돌려봐서 전부 나누어지지 않는다면,
제곱근보다 큰 수에서도 계속 나눠지는 수가 나올 수 없다.
그래서 제곱근까지만 반복문을 돌려도 판별이 가능하다.
728x90
'Algorithm' 카테고리의 다른 글
약수 구하는 방법 [자바스크립트 알고리즘] (0) | 2023.02.08 |
---|