1. 구하면 바로 출력하고 종료
2. 못구하면 0 출력
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
import java.io.*; | |
/** | |
* https://www.acmicpc.net/problem/2501 | |
* BOJ 백준온라인져지 2501 약수 구하기 풀이 | |
*/ | |
public class Main { | |
public static void main (String args[]) throws IOException { | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); | |
String str1[] = br.readLine().split(" "); | |
int N = Integer.parseInt(str1[0]); | |
int K = Integer.parseInt(str1[1]); | |
for (int i = 1; i <= N; i++) { | |
if (N % i == 0) { | |
K--; | |
if (K == 0) { | |
System.out.println(i); | |
return; | |
} | |
} | |
} | |
bw.write("0"); | |
bw.flush(); | |
} | |
} |
문제
어떤 자연수 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번째로 작은 수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.
출력
첫째 줄에 N의 약수들 중 K번째로 작은 수를 출력한다. 만일 N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우에는 0을 출력하시오.
'IT > 알고리즘' 카테고리의 다른 글
BOJ 백준온라인져지 10156 과자 풀이 (0) | 2018.03.21 |
---|---|
BOJ 백준온라인져지 2502 떡 먹는 호랑이 풀이 (0) | 2018.03.20 |
BOJ 백준온라인져지 2564 경비원 풀이 (0) | 2018.03.18 |
BOJ 백준온라인져지 2565 전깃줄 풀이 (0) | 2018.03.18 |
BOJ 백준온라인져지 2563 색종이 풀이 (0) | 2018.03.17 |