학습장/Algorithm
1. 10. 2. Defining Prime Number JAVA 수정 ㅡ_ㅡ
Shin Jaehyun
2018. 4. 23. 20:22
package algorithm_Basic;
import java.util.Scanner;
public class Math_DefiningPrimeNumber {
public static void main(String[] args) {
// TODO Auto-generated method stub
int inputN = 0;
int compN = 0;
int divN = 2;
Scanner scan = new Scanner(System.in);
System.out.printf("숫자를 입력하세요.\n\n");
inputN = scan.nextInt();
compN = inputN - 1;
do { // 요새 do while 순서에 맛들렸나봅니다.
if(compN <= 0) {
System.out.printf("[%d]\tis 1 or less!.", inputN); // 이건 그냥 1또는 1보다 작잖아! 출력하고 멈추기
break;
}else if (divN <= compN) { // 나누는 수가 비교할 수와 비교해서 작은경우
if (inputN % divN == 0) { // 입력한 수가 나누는 수로 나눠서 나눠떨어지는 경우
System.out.printf("[%d]\tis Not a Prime Number.", inputN); // 소수가 아니에요 출력하고 멈추기.
break;
} else { // 나누는 수가 비교할 수와 비교해서 작은데, 입력한 수가 나누는 수로 나눠떨어지지 않는 경우
divN++; // 나누는 수를 1 증가해서 다시 비교하기.
} // else
} // 바깥쪽 if
System.out.printf("[%d]\tis a Prime Number.", inputN); // 나누는 수가 비교할 수보다 크고, 나눠떨어지지 않은 경우. 즉, 자기 자신만 나눠지는
// 경우.
break;
} while (true); // do, while
scan.close();
}// main
}// class
1부터 5까지 하나씩 돌려보면 이렇게 나옵니다.
이렇게 입력된 숫자가 소수인지 아닌지 판별하는걸 해봤습니다.
수정~~~
이 부분이 틀렸었어요. 다시... 수정했습니다. 1은 소수가 아니죠.?
그래서, 수정한대로 입력을 하면 이제 비교하는 숫자가 0 또는 그 이하인경우는 입력하는 숫자가 작은 수라고 별도로 출력을 하게끔 고쳤어요.
0을 입력한 경우,
1을 입력한 경우
이렇게 출력됩니다. ^^
다음것 하려는데 문득 1이 성가셨어요. 교재에서도 1이 있는 경우는 언급이 안되어있던데, 일단 돌려보고 아닌듯... 싶어서 해봤습니다.
덕분에 조금 더 침착하게 보게 되었고, 좋네요.
물론 case를 써도 괜찮은데, if 써버렸어요.