상세 컨텐츠

본문 제목

< 백준 BaekJoon : 4134번 다음 소수> C++

C++/Baekjoon

by J2on 2024. 1. 15. 00:55

본문

<<문제>>

https://www.acmicpc.net/problem/4134

 

4134번: 다음 소수

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

www.acmicpc.net

 

제곱근까지 나누어 봤을 때 나누어 떨어지는지를 판별하는 방법으로 해결 가능

 

 

 

 

<<코드>>

#include <iostream>
using namespace std;

bool isPrime(long long int num) {
  if (num == 0 || num == 1)
    return false;

  if(num == 2) return true;
  else if (num % 2 == 0)
    return false;
  
  for (long long int i = 3; i * i <= num; i += 2) {
    if (num % i == 0) {
      return false;
    }
  }

  return true;
}

long long int targetPrime(long long int num) {
  // 0과 1인 경우를 특정
  while (!isPrime(num)) {
    num++;
  }
  return num;
}

int main() {
  int testNum;
  cin >> testNum;

  long long int inputNum;
  for (int i = 0; i < testNum; i++) {
    cin >> inputNum;
    cout << targetPrime(inputNum) << endl;
  }
}

 

 

관련글 더보기

댓글 영역