[JAVA] 8. 필수 알고리즘 Ⅱ. 약수 구하기

최재원's avatar
Feb 08, 2025
[JAVA] 8. 필수 알고리즘 Ⅱ. 약수 구하기
1~100(N)까지의 수 중 약수는 “약수”라고, 아니면 “아님”이라고 출력하기
N을 N보다 작은 어떤 수로 나누었을 때 나머지가 0이 되면 어떤 수는 N의 약수!
N % M == 0, M은 N의 약수다.

1. 절차를 작성, 샘플링으로 직접 작성

package algo; public class Divisor { public static void main(String[] args) { // 1~4까지 수 중 4의 약수는 "약수"라고, 아니면 "아님"이라고 출력하기 // (약수가 무엇인지 비지니스 파악 혹은 공식 확인하기) int num = 4; // 1. 1출력 System.out.println("1은 4의 약수가 맞습니다."); // 2. 2출력 System.out.println("2은 4의 약수가 맞습니다."); // 3. 3출력 System.out.println("3은 4의 약수가 아닙니다."); // 4. 4출력 System.out.println("4은 4의 약수가 맞습니다."); } }
패턴이 찾아지지 않는 경우에는, 머리속에서 생각하는 모든 절차를 적어야 풀릴때가 있다.
ex) 4의 약수라면
- 결과만 보고 [1약수, 2약수, 4약수] ——————— 이렇게 풀지 말고!
[1약수, 2약수, 3약수아님, 4약수] ——————— 이렇게 풀어보는게 좋다.
패턴은 1,2,3,4 “1부터 4까지의 숫자들이 1씩 증가함”
약수가 맞는지 판별하는 글자가 바뀜

2. 공통 모듈 찾기

package algo; public class Divisor { public static void main(String[] args) { // 1~4까지 수 중 4의 약수는 "약수"라고, 아니면 "아님"이라고 출력하기 // (약수가 무엇인지 비지니스 파악 혹은 공식 확인하기) int num = 4; int a = 0; // 1. 1출력 a++; System.out.println(a + "은 " + num + "의 약수가 " + (num % a == 0 ? "맞습니다." : "아닙니다.")); // 2. 2출력 a++; System.out.println(a + "은 " + num + "의 약수가 " + (num % a == 0 ? "맞습니다." : "아닙니다.")); // 3. 3출력 a++; System.out.println(a + "은 " + num + "의 약수가 " + (num % a == 0 ? "맞습니다." : "아닙니다.")); // 4. 4출력 a++; System.out.println(a + "은 " + num + "의 약수가 " + (num % a == 0 ? "맞습니다." : "아닙니다.")); } }
notion image

3. 반복문

package algo; public class Divisor { public static void main(String[] args) { // 1~4까지 수 중 4의 약수는 "약수"라고, 아니면 "아님"이라고 출력하기 // (약수가 무엇인지 비지니스 파악 혹은 공식 확인하기) int num = 100; int a = 0; // 반복문 돌리기 for (int i = 0; i < num; i++) { a++; System.out.println(a + "은 " + num + "의 약수가 " + (num % a == 0 ? "맞습니다." : "아닙니다.")); } } }
notion image
Share article

jjack1