function listPrimes(num) {
let result = "2"
//result의 첫 값에 "-2"가 들어가는걸 막기 위해 2로 시작합니다.
//그렇지 않으면 않으면 21번째줄 때문에 -2로 시작해버립니다ㅠㅠ
for (let prime = 3; prime <= num; prime++){
//녀석이 소수(prime number)인지 알아봐야 하니
//변수 이름을 prime으로 선언했습니다.
//2는 이미 들어가 있으므로 3부터 찾아봅니다.
for (let i = 2; i<=prime; i++){
//prime을 나눌 값 i를 이중반복문으로 만들어줍니다.
if (prime%i===0 && i!==prime){
//i로 나누어 떨어지지만 i가 자기자신이 아닌경우
//즉, 다른 약수가 있는 경우는 소수가 아닙니다
prime = prime + 1
i = 2}
//소수가 아니므로 다음 수로 넘어갑니다.
//i역시 처음 값으로 돌려 처음부터 체크합니다.
else if (prime%i===0 && i===prime){
//여기까지 왔다면 약수가 자기자신뿐인 녀석입니다.
//소수를 찾았으므로 결과값에 입력해줍니다.
result = result + "-" + prime
}
}
}
return result
//이제 입력된 결과를 리턴해주면 끝!
}
주석 없는 버전!
function listPrimes(num) {
let result = "2"
for (let prime = 3; prime <= num; prime++){
for (let i = 2; i<=prime; i++){
if (prime%i===0 && i!==prime){
prime = prime + 1
i = 2}
else if (prime%i===0 && i===prime){
result = result + "-" + prime
}
}
}
return result
}