본문 바로가기

카테고리 없음

약수

약수란 어떤 수를 나누어떨어지게 하는 수를 말합니다.

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("약수의 개수는 짝수");
    }
}