mun dev

[백준] - 2501 자바 본문

알고리즘/백준

[백준] - 2501 자바

mndev 2023. 2. 25. 15:19

분류

브루트포스 알고리즘(bruteforcing), 수학(math)

 

문제설명

어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다.

6을 예로 들면

  • 6 ÷ 1 = 6 … 0
  • 6 ÷ 2 = 3 … 0
  • 6 ÷ 3 = 2 … 0
  • 6 ÷ 4 = 1 … 2
  • 6 ÷ 5 = 1 … 1
  • 6 ÷ 6 = 1 … 0

그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다.

두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오.

 

 

통과한 코드  

import java.util.Scanner;
import java.io.IOException;

public class Main {
	public static void main(String[] args) throws IOException {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		int index = sc.nextInt();
		int count = 0;

		for (int i = 1; i <= num; i++) { // 약수 몇개인지 카운트 
			if (num % i == 0) {
				count++;
			}
		}

		int resNum[] = new int[count]; // 약수 개수 만큼 배열 생성
		int n = 0;
		int result = 0;

		for (int i = 1; i <= num; i++) { 
			if (num % i == 0) {
				resNum[n] = i; 
				n++;
			}
		}

		if (index > count) { 
			System.out.println(0);
			return;
		} else {
			result = resNum[index - 1];
			System.out.println(result);
		}

	}
}

 

'알고리즘 > 백준' 카테고리의 다른 글

[백준] - 2675 문자열 반복 자바  (0) 2023.03.15
[백준] - 11653 소인수분해 자바  (0) 2023.02.26
[백준] - 18258 큐2  (0) 2023.02.01
[백준] - 10845 큐 자바  (0) 2023.01.29
[백준] - 10828 스택 자바  (0) 2023.01.29