국비교육/국비교육 복습
Day05_loop_Test09 : 소수 판정 프로그램 (for 반복문의 활용 - count) (★)
Luver Duck
2022. 8. 6. 22:26
(Q) 소수 판정 프로그램
소수는 1과 자기 자신만을 약수로 갖는 숫자를 말합니다 (ex : 2, 3, 5, 7, 11, 13, 17, 19, ...)
사용자가 입력한 숫자의 약수의 갯수와 소수인지를 판별하는 프로그램을 구현하세요
** 핵심
- 무엇을 카운트할 것인지를 잘 생각해야 한다
- 반복문을 통해 카운트해야 할 것은 약수의 갯수이다
- 어떤 수의 약수의 갯수가 2개이면 그 수는 소수이다
- 어떤 정수 a를 b로 나눈 나머지가 0이라면 a는 b의 배수이다 = b는 a의 약수가 된다
package day05;
import java.util.Scanner;
public class Day05_loop_Test09 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
int aliquotCount = 0;
for(int i = 1 ; i <= input ; i ++) {
if(input % i == 0) {
aliquotCount++;
System.out.println(input + "의 약수는 " + i + " 입니다");
}
}
if(aliquotCount == 2) {
System.out.println(input + "의 약수의 갯수는 " + aliquotCount + "개 입니다");
System.out.println(input + "은 소수입니다");
}
else {
System.out.println(input + "의 약수의 갯수는 " + aliquotCount + "개 입니다");
System.out.println(input + "은 소수가 아닙니다");
}
}
}
- 반복수 i의 범위를 1부터 자기 자신(input)까지로 설정한다
- 입력한 수(input)을 1부터 자기 자신(input)까지 나누는 행위를 반복한다
- 입력한 수(input)이 어떠한 반복수 i에서 나누어 떨어질 때 약수 카운트(aliquotCount)를 +1 한다
+ 나누어 떨어진 반복수를 출력하면 소인수 분해를 구현할 할 수 있다
- 만약 약수 카운트(aliquotCount)가 2라면 '소수입니다'를 출력한다