package study.exam;
import java.io.*;
public class Ex12 {
int inputNum; // 입력받는 수
public static void main(String[] args) {
new Ex12().execute();
}
// 시작
public void execute() {
getInputNum(); // 정수 입력
getSosuSum(); // 소수합구하기
}
// 임의의 정수 입력 받음
public void getInputNum() {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String str = "";
while (true) {
try {
System.out.print("임의의 정수 입력 : ");
str = reader.readLine();
inputNum = Integer.parseInt(str);
break;
} catch (Exception e) {
System.out.println("2이상의 정수만 입력하세요.");
}
}
}//end getInputNum()
// 소수의 합 구해서 출력
public void getSosuSum() {
int sum = 0; // 소수의 누적 합
for(int i=2; i<inputNum; i++) { // 2부터 입력 정수까지 반복
if(isSosu(i)) // 소수이면
sum += i; // 소수의 합 누적
}
System.out.println(inputNum+"까지 소수의 합은 "+sum+"입니다.,");
}
// 소수 판별 메서드
public boolean isSosu(int num) {
boolean result = true;
for (int i=2; i < num; i++) { // 2이상부터 num-1까지 반복
if (num % i == 0) { // 나누어떨어지는 수가 있으면 소수가 아니다
result = false;
break;
}
}
return result;
}
}