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 C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

//g++でビルド

#include "bits/stdc++.h"

using namespace std;

int a, b, k;

int gcd(int s, int t){
    if(t > s){
        return gcd(t, s);
    }

    if(s%t == 0){
        return b;
    }else{
        return gcd(t, s%t);
    }
}
 
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
 
    cin >> a >> b >> k;

    int now = gcd(a, b);
    //cout << now << endl;

    int count = 0;
    int result = 0;

    for(int i = 1; i <= now; i++){
        if(now%i == 0){
            count++;
            if(count == k){
                result = i;
                break;
            }
        }
    }



    cout << result << endl;
}