Algorithm/정올 알고리즘
정올_1740 소수(자바) / 수학2
미스터로즈
2021. 6. 30. 20:56
시간&메모리 제한
문제
입력&출력
문제풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int M = Integer.parseInt(br.readLine());
int ans=0;
int min=Integer.MAX_VALUE;
for (int i = N; i <= M; i++) {
if(i==1) {
continue;
}
int sq = (int)Math.sqrt(i);
boolean flag = false;
for (int j = 2; j <= sq; j++) {
if(i%j==0) {
flag=true;
break;
}
}
if(flag==false) {
ans+=i;
min = Math.min(min, i);
}
}
if(ans==0) {
System.out.println(-1);
}else {
System.out.println(ans);
System.out.println(min);
}
}
}
- N~M까지의 소수의 합과 소수중의 최솟값을 출력하는 문제입니다.
- ans 즉 소수의 갯수가 0 개 이면 값은 -1을 출력하면 됩니다.
- 소수를 구하는 범위는 sqrt를 이용해서 범위를 줄일 수 있습니다.