약수란 어떤 수를 나누어떨어지게 하는 수를 말합니다.
42의 모든 양의 약수는 1, 2, 3, 6, 7, 14, 21, 42 라고 할 수 있습니다.
java를 이용해서 약수를 구하려면 어떻게 해야 할까요??
42의 약수를 구해봅시다.
import java.util.ArrayList;
import java.util.List;
public class Solution {
public static void main(String[] args) {
int target = 42;
List<Integer> list = new ArrayList<>();
for (int i = 1; i <= target; i++) {
if (target % i == 0) {
list.add(i);
}
}
System.out.println(list);
}
}
간단합니다.
1부터 42까지 for loop를 돌면서 수를 하나씩 가져옵니다. 이 수를 "i" 라고 부르도록 하겠습니다.
42를 "i"로 나눈 나머지 값이 0이라면 "i" 는 42의 약수가 되는 것입니다.
약수의 개수는 어떻게 구할까요??
이전에는 약수일 경우 list에 값을 넣어주었지만 이번에는 약수의 개수 (num)를 한개씩 올려주면 됩니다.
public class Solution {
public static void main(String[] args) {
int target = 42;
int num = 0;
for (int i = 1; i <= target; i++) {
if (target % i == 0) {
num ++;
}
}
System.out.println(num);
}
}
마지막으로 약수의 개수가 홀수인지 짝수인지 알 수 있는 방법은 어떤 것이 있을까요??
제곱수인 경우 약수의 개수가 홀수
제곱수가 아닌 경우는 약수의 개수가 짝수인 성질을 이용해서 구하면 되겠습니다.
42의 약수는 8개, 짝수개 이므로 "약수의 개수는 짝수" 라는 결과를 얻을 수 있겠습니다.
public class Solution {
public static void main(String[] args) {
int target = 42;
if (target % Math.sqrt(target) == 0) {
System.out.println("약수의 개수는 홀수");
System.exit(0);
}
System.out.println("약수의 개수는 짝수");
}
}