ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ

๋ฌธ์ œ ์„ค๋ช…

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

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

์ œํ•œ ์กฐ๊ฑด

  • n์€ 2์ด์ƒ 1000000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

nresult

10 4
5 3

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1
1๋ถ€ํ„ฐ 10 ์‚ฌ์ด์˜ ์†Œ์ˆ˜๋Š” [2,3,5,7] 4๊ฐœ๊ฐ€ ์กด์žฌํ•˜๋ฏ€๋กœ 4๋ฅผ ๋ฐ˜ํ™˜

์ž…์ถœ๋ ฅ ์˜ˆ #2
1๋ถ€ํ„ฐ 5 ์‚ฌ์ด์˜ ์†Œ์ˆ˜๋Š” [2,3,5] 3๊ฐœ๊ฐ€ ์กด์žฌํ•˜๋ฏ€๋กœ 3๋ฅผ ๋ฐ˜ํ™˜

 

๋ฌธ์ œํ’€์ด

https://choi95.tistory.com/50

 

๋’ค์ง‘์€ ์†Œ์ˆ˜

๋ฌธ์ œ N๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด ๊ฐ ์ž์—ฐ์ˆ˜๋ฅผ ๋’ค์ง‘์€ ํ›„ ๊ทธ ๋’ค์ง‘์€ ์ˆ˜๊ฐ€ ์†Œ์ˆ˜์ด๋ฉด ๊ทธ ์†Œ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 32๋ฅผ ๋’ค์ง‘์œผ๋ฉด 23์ด๊ณ , 23์€ ์†Œ์ˆ˜์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด 23์„ ์ถœ๋ ฅํ•œ๋‹ค.(์ฒซ ์ž๋ฆฌ๋ถ€ํ„ฐ์˜

choi95.tistory.com

์†Œ์ˆ˜๋ฅผ ์ฐพ๋Š” ์—ฐ์‚ฐ์€ ์ผ์ „์— ํ’€์—ˆ๋˜ ๋’ค์ง‘์€ ์†Œ์ˆ˜ ๋ฌธ์ œ์™€ ๊ฐ™์•˜๋‹ค.

 

์ฝ”๋“œ

function isPrime(n) {
    for(let i = 2; i <= Math.sqrt(n); i++) {
        if(n % i === 0) return false;
    }
    return true;
}

function solution(n) {
    var answer = 0;
    for(let i = 2; i <= n; i++) {
        if(isPrime(i)) answer++;
    }
    return answer;
}

 

์˜ค๋‹ต

ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๊ฒฐ๊ณผ

์ •ํ™•๋„ ํ…Œ์ŠคํŠธ๋Š” ๋ชจ๋‘ ๋‹ค ๋งž์ณค์œผ๋‚˜ ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ์—์„œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ์˜ค๋‹ต์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ๋‹ค.

๊ตฌ๊ธ€๋งํ•ด๋ณธ ๊ฒฐ๊ณผ ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ค„์—ฌ์•ผ๋งŒ ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค.

 

์—๋ผํ† ์Šค๋„ค์Šค์˜ ์ฒด

  • ์ฃผ์–ด์ง„ ์ˆซ์ž ๊ฐ’์˜ ๋ฒ”์œ„ ์•ˆ์—์„œ, ์ž๊ธฐ ์ž์‹ ์„ ์ œ์™ธํ•œ ๋ฐฐ์ˆ˜ ๊ฐ’์„ ์‚ญ์ œ
  • ์œ„ ์—ฐ์‚ฐ ๊ณผ์ • ํ›„ ์†Œ์ˆ˜๋งŒ ๋‚จ๊ฒŒ ๋จ
  • ์ž…๋ ฅ ๋ฐ›์€ ์ˆซ์ž๊นŒ์ง€์˜ ์ •์ˆ˜ ์ค‘ ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•ด์•ผ ํ•  ๊ฒฝ์šฐ์— ์šฉ์ด

์—๋ผํ† ์Šค๋„ค์Šค์˜ ์ฒด

 

 

์ฝ”๋“œ

let solution = (n) => {
    let arr = Array(n+1).fill(1).fill(0, 0, 2); //์†Œ์ˆ˜์˜ ์กฐ๊ฑด์ด ์•„๋‹Œ 0๊ณผ 1์€ ์‚ฌ์ „์— false

    for(let i=2; i*i<=n; i++){
        if(arr[i]){ //์•ž์„œ ๋ฐฐ์ˆ˜์˜ ์—ฐ์‚ฐ ๊ณผ์ •์—์„œ ๊ตฌํ•ด์กŒ๋‹ค๋ฉด
            for(let j=i*i; j<=n; j+=i){ //๋ฐฐ์ˆ˜ ๊ณฑํ•˜๊ธฐ
                arr[j] = 0;
            }
        }
    }
    return arr.filter((e, _) => e).length;
}
๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ