홀수&짝수 , 약수, 소수 구하기
여러 문제들을 접하면서 가장 많이, 유용하게 쓰이는
홀수&짝수, 약수, 소수를 구하는 방법을 알아보자.
홀수&짝수
-> num % 2 === 0 이면, num은 짝수.
why? ) 모든 짝수는 2로 나눴을때 나머지가 0이다.
반대로, num % 2 === 1 이면, num은 홀수.
why? ) 모든 홀수는 2로 나눴을때 나머지가 1이다.
약수
-> 어떤 숫자 안의 약수들을 알아내고 싶다.
만약, 4의 약수를 구하고싶다면,
4에 %를 1부터 4까지 실행해본다 (i로 선언)
ex) 4 % i === 0 일때, i는 4의 약수이다.
why? ) 해당 숫자와 나눴을때 나머지가 0이면, 그 수는 해당 숫자의 약수이므로
소수
-> 소수를 구하는법은 세 가지 방법이 있다.
- 직접 나눠서 계산
- 판별을 원하는 수/2까지만 나눠서 계산
- 판별을 원하는 수의 제곱근 까지만 나눠서 계산.
먼저 직접 나눠서 계산하는 방법이다.
소수는 소수인 2부터 판별할 수 있다.
그러므로 2를 먼저 리턴해주고,
반복문을 이용해서 2부터 해당 숫자까지 나눴을때 나머지가 0이 되는 수가 있는지 알아보고(약수), 있다면 false,
없다면(소수) 반복문을 빠져나와 ture를 리턴해준다.
function isPrime(num) {
if (num === 2) {
return true;
}
for (let i = 2; i < num; i++) {
if (num % i === 0) {
return false;
//나누어 떨어진 수(약수)가 있으므로 소수가 아님.
}
}
return true;
//나누어 떨어진 수(약수)가 없으므로 소수.
}
다음은 판별을 원하는 수/2까지만 나눠서 계산하는 방법이다.
첫번째 방법에서 반복문의 범위를 2로 나눈 방법이다.
why? ) 원하는 수(num)의 약수는 그 수의 절반을 넘을 수 없기때문.
ex) 6의 약수는 1, 3, 6인데, 6의 절반인 3을 넘은 4, 5는 절대 6의 약수가 될 수 없다.
function isPrime(num) {
if (num === 2) {
return true;
}
for (let i = 2; i < num / 2; i++) {
if (num % i === 0) {
return false;
}
}
return true;
}
마지막 방법은 판별을 원하는 수의 제곱근 까지만 나눠서 계산하는 방법이다.
첫번째 그리고 두번째 방법에서 반복문의 범위를 √number까지로 지정한 방법이다.
why? ) 원하는 수(num)에 약수가 있다면, 약수는 그 수의 제곱근(√) 안에 있다. 그러므로 원하는 수에서 그 수의 제곱근까지 나눴을때 나누어 떨어지는 수가 없다면, 그 수는 소수이다.
function isPrime(num) {
if (num === 2) {
return true;
}
if (num === 1) {
return false;
}
for (let i = 2; i <= Math.sqrt(num); i++) {
if (num % i === 0) {
return false;
}
}
return true;
}
Author And Source
이 문제에 관하여(홀수&짝수 , 약수, 소수 구하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@skagns211/홀수짝수-약수-소수-구하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)