728x90
반응형
다중 반복문 사용하기
for (int i=0; i<10; ++i) {
System.out.println("==========바깥쪽 반복문" + i);
for (int j=0; j<5; ++j) {
System.out.println("--------안쪽 반복문" + j);
for (int k=0; k<3; ++k) {
System.out.println("++++제일 안쪽 반복문" + k);
}
}
}
다중 반복문으로 구구단 출력하기
for (int dan =2; dan<=9; ++dan) {
System.out.printf("====%d단====\n", dan);
for (int gop=1; gop<=9; ++gop) {
System.out.printf("%d * %d = %d\n", dan, gop, dan * gop);
}
System.out.println();
}
}
Quiz
※ 소수(Prime) : 나누어 떨어지는 수가 1과 자기 자신밖에 없는 수
사용자가 숫자를 입력하면
1부터 입력한 숫자 사이에 존재하는 모든 소수를 출력
(사용자가 1 이하의 정수를 입력하는 경우 다시 입력하게 만들 것)
>> 10
2, 3, 5, 7
>> 20
2, 3, 5, 7, 11, 13, 17
Answer
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 >> ");
int num;
for (; (num = sc.nextInt()) < 2;)
System.out.println("소수 계산 하는 곳...");
for (int target = 2; target <= num; ++target) {
// System.out.printf("이번에 소수인지 검사해야하는 숫자: %d\n", target);
boolean sosu = true;
double targetRoot = Math.sqrt(target);
// 2부터 target의 제곱근까지 나누면서 약수가 하나라도 존재하면 소수가 아니다.
for (int divider = 2; divider <= targetRoot; ++divider) {
sosu &= target % divider != 0;
}
if (sosu) {
System.out.printf("%d(sosu)\n", target);
} else {
System.out.printf("%d(not sosu)\n", target);
}
// 또다른 방법
// int yaksuCount = 0;
//
// // target을 자기 자신까지의 숫자로 나눠본다.
// for (int divider = 1; divider <= target; ++divider) {
//// System.out.printf("%d %% %d = %d",
//// target, divider, target % divider);
//
// if (target % divider == 0) {
// yaksuCount++;
// }
// }
//
// // 검사가 끝났을 때 약수의 개수가 2개인 숫자가 소수다.
// if (yaksuCount == 2) {
// System.out.printf("%d은 소수입니다.\n", target);
// }
}
}
}
728x90
반응형
'JAVA > 기본 이론' 카테고리의 다른 글
JAVA | Random 클래스와 Math.random() 메서드 (0) | 2023.03.10 |
---|---|
JAVA | 반복문(While) (0) | 2023.03.10 |
JAVA | break와 continue (0) | 2023.03.08 |
JAVA | charAt()와 length() 메서드 (0) | 2023.03.06 |
JAVA | 반복문(for) (0) | 2023.02.28 |