코플릿/반복문

listPrimes

테오구 2021. 10. 7. 21:34
728x90

문제

2 이상의 자연수를 입력받아 2부터 해당 수까지의 소수(prime number)들을 리턴해야 합니다.

 

 

 

 

 

나와 페어가 쓴 코드

더보기
function listPrimes(num) {
  // TODO: 여기에 코드를 작성합니다.
   let result = '';

   if(num>=2){
     result = '2';
   }

   for(let i = 3; i<=num; i++){
     for(let j = 2; j <= i; j++){
       if(i%j === 0){
         break
       }
       else if(j === i-1){
         result = result + '-' + String(i)
       }
     }
     
   }
   return result
}

 

 

reference

더보기
function listPrimes(num) {
  let result = '2';
  for (let candi = 3; candi <= num; candi += 2) {
    let isPrime = true;
    let sqrt = parseInt(Math.sqrt(candi));
    for (let divider = 3; divider <= sqrt; divider += 2) {
      if (candi % divider === 0) {
        isPrime = false;
        break;
      }
    }

    if (isPrime) {
      result = `${result}-${candi}`;
    }
  }

  return result;
}
728x90

'코플릿 > 반복문' 카테고리의 다른 글

isPrime  (0) 2021.10.07
getSumOfFactors  (0) 2021.10.07
factorial  (0) 2021.10.07
isOdd (나눗셈 사용하지 않고)  (0) 2021.10.07