백준

스위프트 백준 1929 소수구하기

화찌님 2022. 12. 29. 20:30


//
//  main.swift
//  BOJ
//
//  Created by leehwajin on 2022/12/29.
//
import Foundation
//1929소수구하기(에라토스테네스의 체로 풀어야 가장 빠름)
let input = readLine()!.split(separator: " ").map{Int(String($0))!}
var arr = Array(repeating: true, count: input[1]+1)
arr[1] = false

if (input[1] == 1){

}else{
    for i in 2..<input[1]{
        if arr[i] == false{
            continue
        }
        for j in stride(from: 2*i, through:input[1], by: i){
            arr[j] = false
        }
    }
}

for i in input[0]...input[1]{
    if arr[i] == true{
        print(i)
    }
}

에라토스테네스의 체를 통해서 풀지 않으면 타임아웃이 나는 문제.

타임아웃이 아니고 틀렸다고 뜰 경우

반례 -----

1. 1은 소수가 아니다 !!

2. 1 4 입력했을때 2 3 이 나오는지

3. 1 1 입력했을때 아무것도 프린트가 되면 안된다