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 ? "맞습니다." : "아닙니다."));
}
}

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 ? "맞습니다." : "아닙니다."));
}
}
}

Share article