-> 자신보다 작은 수를 나누기를 했을 때, 나머지가 '0' 인 경우가 있을 경우 소수가 아니다.
==> % : 나머지를 나타내는 연산자
i 가 2 이라면 ==> 2는 소수이다.
i 가 3 이라면 ==> 3%2 != 0 3는 소수이다.
i 가 4 이라면 ==> 4%2 == 0 4%3(검사할 필요가 없다) 4는 소수가 아니다.
i 가 5 이라면 ==> 5%2 != 0 5%3 != 0 5%4 != 0 5는 소수이다.
i 가 6 이라면 ==> 6%2 == 0 6%3(검사할 필요가 없다) 6은 소수가 아니다.
i 가 7 이라면 ==> 7%2 != 0 7%3 != 0 7%4 != 0 7%5 != 0 7%6 != 0 7은 소수이다.
i 가 8 이라면 ==> 8%2 == 0 8%3(검사할 필요가 없다) 8은 소수가 아니다.
i 가 9 이라면 ==> 9%2 != 0 9%3 == 0 9%4(검사할 필요가 없다) 9은 소수가 아니다.
i 가 10 이라면 ==> 10%2 == 0 10%3(검사할 필요가 없다) 10은 소수가 아니다.
do{
try{
System.out.print("▷시작 자연수 :");
int start_no = sc.nextInt();
System.out.print("▷끝 자연수 :");
int end_no = sc.nextInt();
String str_result = "";
int cnt = 0, sum = 0;
for(int i=start_no; i<=end_no; i++) {
if(i==1) { // 1은 소수가 될 수 없으므로 검사할 필요 X
continue; // 아래를 진행하지 않고 다시 반복문 증감식으로 올라간다
}
boolean isSosu = true;
for(int bunmo=2; bunmo<i; bunmo++) { // 2나누기 2 제외하기 위해
// bunmo < i 설정
if(i%bunmo == 0) { // 몫이 다른수도 가능하다는 것을 뜻한다.
isSosu = false;
break; // 가까운 반복문을 빠져나간다.
} // end of if---------
} // end of for--------------
if(isSosu) { // isSosu가 true 라면
cnt++; // 소수의 개수
sum += i; // 소수들의 누적 합계
String add = (cnt==1)?"":",";
str_result += add+i;
} // end of if-----------
} // end of for-------------------------------
} catch (InputMismatchException e) { // 정수(int)가 아닌 다른값을 입력한 경우
System.out.println(">> [경고] 자연수만 입력하세요!!\n");
sc.nextLine(); // 입력한 값을 버려야 새로 입력이 가능하다.
} // end of try~catch-----------------
sc.close();
break; // while이 항상 true 이기 때문에 break가 있어야 빠져나갈 수 있다.
} while (true); // end of do~while------------------------------------------
System.out.println("\n=== 프로그램 종료 ===\n");
my.day07.b.dowhile -> Main_primenumber_3