공부하기/백준

[Java] 백준 풀기 13225 - Divisors

XEV 2023. 5. 3. 23:41

자바 백준 13225번

브론즈 3

https://www.acmicpc.net/problem/13225

 

13225번: Divisors

For each integer n, print a line with the number n itself, a space and the number of divisors.

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학, 구현, 브루트포스 알고리즘, 사칙연산

 

 

 

 

 

문제 풀기

주어진 테스트 케이스만큼 반목문을 통해 각 숫자를 입력받고 약수의 개수를 구한다.

각각 입력되는 숫자의 크기만큼 for loop 을 돌리면서 주어진 n 을 1 부터 n 까지 나누어 나머지가 0 이 되는 개수를 count 한다. 이때, n / 2 초과의 수에서는 약수가 존재하지 않기 때문에 n / 2 까지만 for loop 을 돌려 약수가 있는지 확인한다.

 

 

(참고. 자바 풀이로 n 까지 for loop 을 돌려 찾게 되면 답안이 틀렸다고 나온다. 컴파일 에러는 python 으로 잘못 제출.)

 

 

 

 

 

코드 보기

import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        
        Scanner sc = new Scanner(System.in);
        
        int c = sc.nextInt();
        
        for (int i = 0; i < c; i++) {
            int n = sc.nextInt();
            
            int count = 1;  // n 이 자기 자신을 약수로 가질 경우를 초기로 넣고 시작.
            for (int j = 1; j <= n / 2; j++) {
                if (n % j == 0) {
                    count += 1;
                }
            }
            
            System.out.println(n + " " + count);
        }

    }
}