[ 05.18 ] JS - 약수 / 소수란 ? 반복문으로 약수 / 소수 구하기
약수란 ?
주어진 값을 1부터 주어진 값까지 나누었을때 똑 떨어지는 수를 약수라고 한다.
예를들면, 8이라는 값의 약수를 구해보자면
1, 2, 3, 4, 5, 6, 7, 8, 9 까지의 수에서
9를 1~9로 각 나누었을때 나머지가 0인 수는
1,3,9 총 이렇게 세개이다.
예제 1. 약수 나열해보기.
function factor(num){ let f = ''; for(let i = 1; i <=num; i++{ if(num % i === 0){ f+=String(i); } } return f }
만약 num 이라는 매개변수 자리에 9 가 왔다면,
1부터 9가 될 때까지 반복하는데, (for문)
그 중 num인 9를 i번 반복하며 나누었을때 나머지가 0인 수만 골라준다.
그 중 충족하는 수만 나타내기 위해 숫자형태인 i 에 String 처리를 해주었다.
만약 최종 결과를 숫자로 표시하고 싶다면 return Number(f) 처리 해줘도 좋다.
소수란 ?
1과 자기자신 외에는 약수를 가지지않는 수이다. 쉽게말하면,
어떠한 수로도 딱 나누어 떨어지지 않는 수를 말한다.
예를 들어 8까지 소수를 구한다고 한다면,
1,2,3,4,5,6,7,8 중 1과 자기자신을 제외한 나머지 수로 나누어 지지 않는 숫자는 2,3,5,7 이 해당되게 된다.
4 = 2/2, 6 = 2/3, 8 = 4/2 .. 뭐 이런식으로..
*참고로 1은 소수가 아니다!
예제 2. 소수의 불리언 값 나타내기.
let sqrt = Math.sqrt(num); if (num === 1) { return false; } if (num === 2) { return true; } if (num % 2 === 0) { return false; } for (let i = 3; i <= sqrt; i += 2) { if (num % i === 0) { return false; } } return true;
일단 소수의 정의를 내릴 때 , 한 번 생각해야할것!
1과 그 자신을 제외한 나머지 i 값의 나머지가 0으로 떨어지지 않을때 소수를 반환.
짝수는 무조건 소수가 아니고, 홀수 중에서도 제곱근의 값은 소수가 아니기 때문에
Math.sqrt(num) 처리를 해주었다.
만약 num 이 9라면 Math.sqrt(9) 는 3을 리턴하기 때문이다.
num 이 5나 6 등의 제곱근을 리턴하는 값이 정수로 떨어지지 않는 경우가 있는데, 사전에 parseInt() 처리를 해주어도 좋다.
하지만 결과는 불리언 값만 필요로 하니 딱히 쓰지않아도 결과물이 나온다.
Author And Source
이 문제에 관하여([ 05.18 ] JS - 약수 / 소수란 ? 반복문으로 약수 / 소수 구하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@22soook00/2주차-JS-약수-소수란-반복문으로-약수-소수-구하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)