4134번: 다음 소수
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다.
www.acmicpc.net
풀이 과정
- 소수 여부를 검사할 수에 대해서 그 값의 제곱근을 기준으로 그 곱은 대칭적으로 곱이 일어나므로 제곱근 이하의 작은 값까지만 검사를 하면 나머지는 검사를 할 필요가 없음
- 검사할 데이터를 제곱근 개 이하로 줄일 수 있는 방법
2024.01.28 - [Java/자료구조] - 2-1 배열
2-1 배열
자료구조 - 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계 1. 배열 다루기 1) 배열(Array) - 같은 자료형의 변수인 구성 요소(component)가 모인 것 ex) 구성 요소의 자료형이 int형이고
juju-study.tistory.com
정답
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
//a 이상의 소수 중 최솟값 구하기
public static boolean isPrime(long n)
{
//소수 판별시 루트 n까지 나누어 진행
if(n<2)
{
return false;
}
for(int i=2; i<=Math.sqrt(n); i++)
{
if(n%i==0) return false; //나누어지면 소수가 아님
}
return true;
}
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int num = Integer.parseInt(br.readLine());
for(int i=0; i<num; i++)
{
long n = Long.parseLong(br.readLine());
if(n<=2)
{
bw.write(2+"");
}
else
{
while(!isPrime(n))
{
n++;
}
bw.write(n+"");
}
bw.newLine();
}
bw.flush();
bw.close();
}
}
'Java > 백준' 카테고리의 다른 글
[JAVA] 백준 4948 베르트랑 공준 (1) | 2024.02.10 |
---|---|
[JAVA] 백준 1929 소수 구하기 (1) | 2024.02.10 |
[JAVA] 백준 2485 가로수 (1) | 2024.02.10 |
[JAVA] 백준 1735 분수합 (1) | 2024.02.10 |
[JAVA] 백준 13241 최소공배수 (1) | 2024.02.10 |