Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- public class KthSmallestFactor {
- public static void main(String[] args) throws Exception {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- int t = Integer.parseInt(br.readLine());
- long num;
- int k;
- for (int i = 0; i <= t; i++) {
- String[] l = br.readLine().split(" ");
- num = Long.parseLong(l[0]);
- k = Integer.parseInt(l[1]);
- System.out.println("result " + kthSmallest(num, k));
- }
- }
- public static long kthSmallest(long num, int k) {
- int incrementer = num % 2 == 0 ? 1 : 2;
- int count = 0;
- List<Long> list = new ArrayList<>();
- for (long i = 1; i <= Math.sqrt(num); i += incrementer) {
- if (num % i == 0) {
- count++;
- if (count == k) {
- return i;
- }
- list.add(i);
- if (i != num / i) {
- list.add((num / i));
- }
- }
- }
- Collections.sort(list);
- if (k - 1 < list.size()) {
- return list.get((int) (k - 1));
- }
- return -1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment