Problem:
Score : 200 points

Problem Statement

You are given positive integers A and B.

Find the K-th largest positive integer that divides both A and B.

The input guarantees that there exists such a number.

Constraints

All values in input are integers.

1 \leq A, B \leq 100

The K-th largest positive integer that divides both A and B exists.

K \geq 1

Input

Input is given from Standard Input in the following format:

A B K

Output

Print the K-th largest positive integer that divides both A and B.

Sample Input 1

8 12 2

Sample Output 1

2

Three positive integers divides both 8 and 12: 1, 2 and 4.
Among them, the second largest is 2.

Sample Input 2

100 50 4

Sample Output 2

5

Sample Input 3

1 1 1

Sample Output 3

1

Solution in Ruby (2.3.3) (judge verdict: Accepted)

require 'prime'

class Solver

  def initialize
    @nums = []
  end

  def main
    a, b, k = gets.split.map(&:to_i)
    # puts a, b, k

    m = a.gcd(b)
    # puts m

    pd = Prime.prime_division(m)  #=> [[5, 1], [197, 1], [461, 1]]
    # puts pd

    dnum(pd, 0, 1)

    @nums.uniq!
    @nums.sort!
    @nums.reverse!

    puts @nums[k-1]
  end

  # 約数
  def dnum(pdnum, idx, acc)
    if pdnum.length == idx
      @nums << acc
      return
    end

    k, v = pdnum[idx]
    0.upto(v) do |n|
      dnum(pdnum, idx + 1, acc * (k ** n))
    end
  end
end

if __FILE__ == $0
  Solver.new.main
end