문제
/* 2보다 큰 정수를 하나 입력 받아 그 수가 소수인지 아닌지를 판별해서 출력하세요
* 소수인 경우 "소수다." 출력, 소수가 아닌 경우 "소수가 아니다." 출력
*
* 단, 2보다 큰 정수가 아닌 경우 "잘못 입력하셨습니다. 다시 입력하세요." 라고 출력 후
* 정수를 다시 입력 받을 수 있도록 한다.
*
* 소수란?
* 어떤 수를 1부터 자기 자신까지 차례대로 나누었을 때
* 나누어 떨어지는 수가 1과 자기 자신만 존재하는 수를 소수라고 한다.
*
* -- 입력 예시 --
* 2보다 큰 정수를 하나 입력하세요 : 7
*
* -- 출력 예시 --
* 소수다.
* */
작성한 답)
int num =0;
do{
Scanner sc = new Scanner(System.in);
System.out.print("2보다 큰 정수를 입력하세요 : ");
num = sc.nextInt();
/*2보다 작은 수를 입력했을 때 리턴*/
if (num<2) {
System.out.print("잘못 입력하셨습니다. 다시 입력하세요.");
return;
}
/*2는 소수이다.*/
if(num == 2) {
System.out.print("소수다"); }
/* 소수 구하는 for문 */
/* 임의의 수 i < num (소수는 자기 자신과 1로만 나누어진다.) 7일때 6까지 비교해봄. */
for(int i = 2; i < num; i++) {
if(num % i == 0) {
System.out.print("소수가 아니다");
return;
} else {
System.out.print("소수다");
return;
}
}
} while(num<2);
}
}
'백엔드 과정 > Java' 카테고리의 다른 글
Java 문제풀이 3-3. 문자열에 문자가 몇개 포함되어 있는지 판별하기 (0) | 2021.12.27 |
---|---|
Java 문제풀이 3-2. 랜덤숫자 맞추기 게임 (0) | 2021.12.27 |
[Java] day7. 반복문의 제어 / break문 continue문 (0) | 2021.12.26 |
[Java] day7. 반복문 while문 (0) | 2021.12.26 |
[Java] day7. 반복문 for문 (0) | 2021.12.25 |