Jieunny์˜ ๋ธ”๋กœ๊ทธ

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์†Œ์ˆ˜ ์ฐพ๊ธฐ (์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜) ๋ณธ๋ฌธ

Study/Coding Test

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์†Œ์ˆ˜ ์ฐพ๊ธฐ (์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜)

Jieunny 2023. 1. 25. 10:06

๐Ÿ“Œ  ๋ฌธ์ œ

1๋ถ€ํ„ฐ ์ž…๋ ฅ๋ฐ›์€ ์ˆซ์ž n ์‚ฌ์ด์— ์žˆ๋Š” ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”.

์†Œ์ˆ˜๋Š” 1๊ณผ ์ž๊ธฐ ์ž์‹ ์œผ๋กœ๋งŒ ๋‚˜๋ˆ„์–ด์ง€๋Š” ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
(1์€ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.)

 

โœ๏ธ  ํ’€์ด

๐Ÿ“ฃ  ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด

โœ”๏ธ ์†Œ์ˆ˜๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ (๋Œ€๋Ÿ‰์œผ๋กœ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ)

โœ”๏ธ ์†Œ์ˆ˜๋ฅผ ํŒ๋ณ„ํ•  ์ˆ˜๋งŒํผ ๋ฐฐ์—ด์„ ํ• ๋‹นํ•˜๊ณ , ํ•˜๋‚˜์”ฉ ์ง€์›Œ๊ฐ€๋Š” ๋ฐฉ๋ฒ•

     โžฐ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ํŠน์ • ์ˆ˜์˜ ๋ฐฐ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ง€์šด๋‹ค.

     โžฐ ์ง€์šธ ๋•Œ, ์ž๊ธฐ ์ž์‹ ์€ ์ง€์šฐ์ง€ ์•Š๊ณ  ์ด๋ฏธ ์ง€์›Œ์ง„ ์ˆ˜๋Š” ๊ฑด๋„ˆ๋›ด๋‹ค.

     โžฐ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๋‚จ์•„ ์žˆ๋Š” ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

๐Ÿ“ฃ  ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด ๊ตฌํ˜„ ์ฝ”๋“œ

function prime(n) {
  let answer = 0;
  let arr = [];
  
  for(let i=2; i<=n; i++){  // ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” ํ•˜๊ธฐ
    arr[i] = i
  }

  for(let i=2; i<=n; i++){  // 2๋ถ€ํ„ฐ ๋Œ๋ฉด์„œ 
    if(arr[i] === 0){ // ์ด๋ฏธ ์ง€์›Œ์ง„ ์ˆ˜๋ผ๋ฉด ๊ฑด๋„ˆ๋›ฐ๊ณ 
      continue;
    }
    else{
      for(let j= 2*i; j<=n; j+=i){  // ์•ˆ์ง€์›Œ์ง„ ์ˆ˜๋ผ๋ฉด ๊ทธ ์ˆ˜์˜ ๋ฐฐ์ˆ˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ๋ชจ๋“  ๋ฐฐ์ˆ˜ ์ง€์šฐ๊ธฐ
        arr[j] = 0;
      }
    }
  }

  for(let i=2; i<=n; i++){
    if(arr[i] !== 0){
      answer++;
    }
  }

  return answer;
}