쉽게 쉽게

[Java] 약수의 개수 구하기 본문

개발공부/Java

[Java] 약수의 개수 구하기

곱마2 2024. 9. 15. 17:50
반응형

▤ 목차

    1. 약수의 개수 구하기

    1. 방법1

    int N = 12345; // 숫자
    int cnt = 0; // 약수의 개수
            for(int i=1; i<=N; i++){
               if(N%i == 0){
                  cnt++; 
               } 
            }

    이 방법은 number가 커질수록 비효율적이다.

     

    2. 방법2 (효율적인 방법)

    int N = 12345; //숫자
    int cnt = 0; //약수의 개수
    for (int i = 1; i*i <= N; i++) {
    	if (i*i == N) cnt++;
    	else if (N % i == 0) cnt += 2;
    }

    N의 약수 중 하나가 m이라고 했을 때, 다른 약수는 number/m이 되므로 하나의 약수를 알면 다른 하나를 알수있다.

    for문을 √N까지 구하면 약수 절반의 개수를 구할 수 있다는 걸 알 수 있다.

    1~√N까지 수 중 N의 약수를 구해 × 2를 해주면 되고, 약수가 √N인 경우에 제곱근이므로 1개로 카운트해주면 된다.

    https://chwan.tistory.com/entry/Java-%EC%95%BD%EC%88%98%EC%9D%98-%EA%B0%9C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0

     

    [Java] 약수의 개수 구하기

    방법1 N의 약수 개수 구하는 방법을 생각했을 때 바로 떠오르는 방법은 N을 1부터 N까지의 숫자로 나눠 약수인지 판별하여 카운트를 해주는 방법이다. 코드로 구현해보면 아래와 같다. int N = 100000

    chwan.tistory.com

    잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다.
    반응형

    '개발공부 > Java' 카테고리의 다른 글

    [Java] 소수 구하기  (2) 2024.09.26
    [Java] 최대공약수, 최소공배수 구하기  (0) 2024.09.20
    [Java] FILE 업로드(다중)  (0) 2024.04.28
    Map에 있는 값 형변환하기  (1) 2023.11.19
    입출력I/O  (0) 2023.03.31