[Baekjoon] 4134 - 다음 소수

Chobby·2023년 11월 14일
1

Baekjoon

목록 보기
74/108

😀문제

정수 n(0 ≤ n ≤ 4*109)가 주어졌을 때, n보다 크거나 같은 소수 중 가장 작은 소수 찾는 프로그램을 작성하시오.


😁입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다.


😂출력

각각의 테스트 케이스에 대해서 n보다 크거나 같은 소수 중 가장 작은 소수를 한 줄에 하나씩 출력한다.

예제 입력 1 
3
6
20
100
예제 출력 1 
7
23
101

🤣출처

  • Contest > Waterloo's local Programming Contests > 15 July, 2012 B번
  • 문제를 번역한 사람: baekjoon

😃알고리즘 분류

  • 수학
  • 브루트포스 알고리즘
  • 정수론
  • 소수 판정

😎나의풀이

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

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n").map((a, i) => {
    // 첫 번째 수는 테스트 케이스 개수이므로 생략
    if(i === 0) return a
    const curNum = Number(a)
    for(let i = curNum ; ; i++) {
        if(i <= 1) return 2
        if(isPrime(i)) {
            return i
        }
    }
})
input.shift()
const result = input.join("\n")
console.log(result)
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글