import java.io.*;

class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        String[] ABK = str.split(" ");
        int cont = 0;
        for (int i=Math.min(Integer.parseInt(ABK[0]),Integer.parseInt(ABK[1]));i>0;i--){
            if (Integer.parseInt(ABK[0])%i==0 && Integer.parseInt(ABK[1])%i==0){
                cont++;
                if (cont==Integer.parseInt(ABK[2])){
                    System.out.println(i);
                    return;
                }
            }
        }
    }
} import java.io.*; io.* java class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        String[] ABK = str.split(" ");
        int cont = 0;
        for (int i=Math.min(Integer.parseInt(ABK[0]),Integer.parseInt(ABK[1]));i>0;i--){
            if (Integer.parseInt(ABK[0])%i==0 && Integer.parseInt(ABK[1])%i==0){
                cont++;
                if (cont==Integer.parseInt(ABK[2])){
                    System.out.println(i);
                    return;
                }
            }
        }
    }
} Main public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        String[] ABK = str.split(" ");
        int cont = 0;
        for (int i=Math.min(Integer.parseInt(ABK[0]),Integer.parseInt(ABK[1]));i>0;i--){
            if (Integer.parseInt(ABK[0])%i==0 && Integer.parseInt(ABK[1])%i==0){
                cont++;
                if (cont==Integer.parseInt(ABK[2])){
                    System.out.println(i);
                    return;
                }
            }
        }
    } main {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        String[] ABK = str.split(" ");
        int cont = 0;
        for (int i=Math.min(Integer.parseInt(ABK[0]),Integer.parseInt(ABK[1]));i>0;i--){
            if (Integer.parseInt(ABK[0])%i==0 && Integer.parseInt(ABK[1])%i==0){
                cont++;
                if (cont==Integer.parseInt(ABK[2])){
                    System.out.println(i);
                    return;
                }
            }
        }
    } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) String str = br.readLine(); str br.readLine() br.readLine br String[] ABK = str.split(" "); ABK str.split(" ") str.split str " " int cont = 0; cont 0 for (int i=Math.min(Integer.parseInt(ABK[0]),Integer.parseInt(ABK[1]));i>0;i--){
            if (Integer.parseInt(ABK[0])%i==0 && Integer.parseInt(ABK[1])%i==0){
                cont++;
                if (cont==Integer.parseInt(ABK[2])){
                    System.out.println(i);
                    return;
                }
            }
        } int i=Math.min(Integer.parseInt(ABK[0]),Integer.parseInt(ABK[1])); int i=Math.min(Integer.parseInt(ABK[0]),Integer.parseInt(ABK[1])); i Math.min(Integer.parseInt(ABK[0]),Integer.parseInt(ABK[1])) Math.min Math Integer.parseInt(ABK[0]) Integer.parseInt Integer ABK[0] ABK 0 Integer.parseInt(ABK[1]) Integer.parseInt Integer ABK[1] ABK 1 i>0 i 0 i-- i-- i {
            if (Integer.parseInt(ABK[0])%i==0 && Integer.parseInt(ABK[1])%i==0){
                cont++;
                if (cont==Integer.parseInt(ABK[2])){
                    System.out.println(i);
                    return;
                }
            }
        } {
            if (Integer.parseInt(ABK[0])%i==0 && Integer.parseInt(ABK[1])%i==0){
                cont++;
                if (cont==Integer.parseInt(ABK[2])){
                    System.out.println(i);
                    return;
                }
            }
        } if (Integer.parseInt(ABK[0])%i==0 && Integer.parseInt(ABK[1])%i==0){
                cont++;
                if (cont==Integer.parseInt(ABK[2])){
                    System.out.println(i);
                    return;
                }
            } Integer.parseInt(ABK[0])%i==0 && Integer.parseInt(ABK[1])%i==0 Integer.parseInt(ABK[0])%i==0 Integer.parseInt(ABK[0])%i Integer.parseInt(ABK[0]) Integer.parseInt Integer ABK[0] ABK 0 i 0 Integer.parseInt(ABK[1])%i==0 Integer.parseInt(ABK[1])%i Integer.parseInt(ABK[1]) Integer.parseInt Integer ABK[1] ABK 1 i 0 {
                cont++;
                if (cont==Integer.parseInt(ABK[2])){
                    System.out.println(i);
                    return;
                }
            } cont++ cont if (cont==Integer.parseInt(ABK[2])){
                    System.out.println(i);
                    return;
                } cont==Integer.parseInt(ABK[2]) cont Integer.parseInt(ABK[2]) Integer.parseInt Integer ABK[2] ABK 2 {
                    System.out.println(i);
                    return;
                } System.out.println(i) System.out.println System.out System System.out i return; String[] args args
import java.io.*;

class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        String[] ABK = str.split(" ");
        int cont = 0;
        for (int i=Math.min(Integer.parseInt(ABK[0]),Integer.parseInt(ABK[1]));i>0;i--){
            if (Integer.parseInt(ABK[0])%i==0 && Integer.parseInt(ABK[1])%i==0){
                cont++;
                if (cont==Integer.parseInt(ABK[2])){
                    System.out.println(i);
                    return;
                }
            }
        }
    }
}