강의로 돌아가기
yangws1

거의다 맞는데 입력값이 소수일때만 문제네요 ㅜㅜ

효율성 테스트도 다 통과하는데 입력값이 소수일때만 답이 안나오는군요 ㅜㅜ 에라토스테네스 체 알고리즘인데 어디가 문제일까요?

func solution(_ n:Int) -> Int {
    var arr = [Bool](repeating: false, count: n+1)
    for i in 2..<n {
        arr[i] = true;
    }
    var j : Int = 2;
    while(j*j <= n){
        if(arr[j] == true){
            var k : Int = j * j
            while(k <= n){
                arr[k] = false
                k += j
            }
        }
        j += 1
    }
    var num : Int = 0
    for i in 0..<n+1 {
        if(arr[i] == true){
            num += 1
        }
    }
    return num
}
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.