Swift Data Structure And Algorithm/Basic Number Theory

chebyshevtheo

youngjaeLee1026 2022. 3. 8. 22:56

1. ๋ฌธ์ œ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-03-08 22 52 11

2. ์ž…์ถœ๋ ฅ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-03-08 22 53 11

3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-03-08 22 53 27

4. ๋ฌธ์ œ ์„ค๊ณ„

  1. ํŠน์ • ์ˆซ์ž๊ฐ€ ์†Œ์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋ณ„ํ•˜๋Š” ๊ฒƒ์€ ์ œ๊ณฑ๊ทผ๊นŒ์ง€ ์ง์ ‘ ๋‚˜๋ˆ„์–ด๋ณด๋Š” ๊ฒƒ์ด ๋น ๋ฅด์ง€๋งŒ,
  2. ํŠน์ • ๋ฒ”์œ„๋‚ด์˜ ๋ชจ๋“  ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๊ฐ€ O(N log N)์œผ๋กœ ๋” ํšจ์œจ์ ์ž„
  3. ๋”ฐ๋ผ์„œ 2๋ถ€ํ„ฐ 2 * n ๊นŒ์ง€์˜ ๋ชจ๋“  ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ , n + 1 ๋ถ€ํ„ฐ 2 * n(n๋ณด๋‹ค ํฌ๊ณ  2 * n ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€) ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ

5. ์ „์ฒด ์ฝ”๋“œ

//
//  main.swift
//  Chebyshevtheo
//
//  Created by ์ด์˜์žฌ on 2022/03/08.
//MARK: - chebyshevtheo

//MARK: - Framework
import Foundation

//MARK: - Function
func getPrimeNumberCount(_ number: Int) -> Int {
    var primeNumbers: [Bool] = Array(repeating: true, count: 2 * number + 10)
    var primeNumberCount: Int = 0
    
    primeNumbers[1] = false
    for i in 2...(2 * number) {
        var j: Int = 2
        while i * j <= 2 * number {
            primeNumbers[i * j] = false
            j += 1
        }
    }
    
    for i in number + 1...2 * number {
        primeNumberCount += primeNumbers[i] ? 1 : 0
    }
    
    return primeNumberCount
}

func solution() -> Void {
    var answer: String = ""
    while true {
        //MARK: - Input
        guard let n: Int = Int(readLine() ?? "0") else { return }
        
        //MARK: - Process
        if n == 0 {
            break
        }
        
        answer += "\(getPrimeNumberCount(n))\n"
    }
    
    //MARK: - Output
    print(answer, terminator: "")
}
solution()

 

์ „์ฒด์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

'Swift Data Structure And Algorithm > Basic Number Theory' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Adv. ์†Œ์ˆ˜ ํŒ๋ณ„  (0) 2022.04.18
ํŒŒ์Šค์นผ ์‚ผ๊ฐํ˜•  (0) 2022.04.18
pfactorization  (0) 2022.03.08
fmttalpha  (0) 2022.03.08
streetree  (0) 2022.03.08