[정올] 2809_약수 (JAVA)

업데이트:


문제

한 개의 정수를 입력받아 입력받은 정수의 약수를 모두 출력하는 프로그램을 작성하시오.



입력형식

  • 정수 N이 주어진다. (2 ≤ N ≤ 21억)



출력형식

  • N의 약수를 작은 수부터 차례로 모두 출력한다.



입출력 예

예



코드

import java.util.Arrays;
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
         
        int n = sc.nextInt();
         
        int sq = 0; 
        int[] arr = new int[10000];
        int cnt = 0;
        sq = (int)Math.sqrt(n);
        for (int i = 1; i <= sq; i++)
        {
            if (n % i == 0)
            {
                arr[cnt++] = i;
                if (n / i != i)
                    arr[cnt++] = n / i; 
            }
        }
         
        Arrays.sort(arr);
         
        for(int num : arr) {
            if(num != 0) System.out.print(num + " ");
        }
    }
}

댓글남기기