BigInteger 클래스,
정수론을 사용했다.
입력이 40억 까지로 엄청 크다.
이제 여기서 15분 동안 어떻게 해줘야 할지 고민했다. 답을 찾지 못했고
2번 과정으로라도 문제를 풀어보기로 했다. 제출한 결과는 역시나 TLE
결국 풀이를 보기로 했다.
BigInteger 클래스를 통해서 문제를 풀 수 있었다.
import java.io.*;
import java.util.*;
import java.math.BigInteger;
public class Main {
static StringBuilder sb=new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int t=Integer.parseInt(br.readLine());
while(t-->0) {
String num=br.readLine();
BigInteger prime=new BigInteger(num);
long val=Long.parseLong(num);
long sqrt=(long) Math.sqrt(val);
boolean s=false;
for(int i=2;i<=sqrt;i++) {
if(val%i==0) s=true;
}
if(s)
sb.append(prime.nextProbablePrime());
else if(val==0||val==1) {
sb.append(prime.nextProbablePrime());
}
else
sb.append(val);
sb.append("\n");
}
System.out.println(sb);
}
}
자료구조 & 알고리즘적으로 접근하지 못하고 클래스의 메소드를 이용해서 푼 문제라 풀고도 살짝 찝찝하다.
그리고 BigInteger 클래스는 알았어도 nextProbablePrime 메소드는 알지 못했는데 이번 기회에 확실하게 상기해야겠다.
하루에 백준 1문제 이상 푸는 것을 목표로 하고있다.
https://solved.ac/profile/anwlro0212