import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main{

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int A = Integer.parseInt(temp[0]);
		int B = Integer.parseInt(temp[1]);
		int K = Integer.parseInt(temp[2]);
		Map<Integer,Integer> ans = new HashMap<Integer,Integer>();


		int defa = 1;
		for(int i = 1; i <= 100; i++) {
			if(A % i == 0 && B % i == 0) {
				if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				}
			}
		}

		System.out.println(ans.get(ans.size() - K + 1));


	}

} import java.util.HashMap; HashMap java.util import java.util.Map; Map java.util import java.util.Scanner; Scanner java.util public class Main{

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int A = Integer.parseInt(temp[0]);
		int B = Integer.parseInt(temp[1]);
		int K = Integer.parseInt(temp[2]);
		Map<Integer,Integer> ans = new HashMap<Integer,Integer>();


		int defa = 1;
		for(int i = 1; i <= 100; i++) {
			if(A % i == 0 && B % i == 0) {
				if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				}
			}
		}

		System.out.println(ans.get(ans.size() - K + 1));


	}

} Main public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int A = Integer.parseInt(temp[0]);
		int B = Integer.parseInt(temp[1]);
		int K = Integer.parseInt(temp[2]);
		Map<Integer,Integer> ans = new HashMap<Integer,Integer>();


		int defa = 1;
		for(int i = 1; i <= 100; i++) {
			if(A % i == 0 && B % i == 0) {
				if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				}
			}
		}

		System.out.println(ans.get(ans.size() - K + 1));


	} main {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int A = Integer.parseInt(temp[0]);
		int B = Integer.parseInt(temp[1]);
		int K = Integer.parseInt(temp[2]);
		Map<Integer,Integer> ans = new HashMap<Integer,Integer>();


		int defa = 1;
		for(int i = 1; i <= 100; i++) {
			if(A % i == 0 && B % i == 0) {
				if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				}
			}
		}

		System.out.println(ans.get(ans.size() - K + 1));


	} Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) String[] temp = scanner.nextLine().split(" "); temp scanner.nextLine().split(" ") scanner.nextLine().split scanner.nextLine() scanner.nextLine scanner " " int A = Integer.parseInt(temp[0]); A Integer.parseInt(temp[0]) Integer.parseInt Integer temp[0] temp 0 int B = Integer.parseInt(temp[1]); B Integer.parseInt(temp[1]) Integer.parseInt Integer temp[1] temp 1 int K = Integer.parseInt(temp[2]); K Integer.parseInt(temp[2]) Integer.parseInt Integer temp[2] temp 2 Map<Integer,Integer> ans = new HashMap<Integer,Integer>(); ans new HashMap<Integer,Integer>() int defa = 1; defa 1 for(int i = 1; i <= 100; i++) {
			if(A % i == 0 && B % i == 0) {
				if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				}
			}
		} int i = 1; int i = 1; i 1 i <= 100 i 100 i++ i++ i {
			if(A % i == 0 && B % i == 0) {
				if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				}
			}
		} {
			if(A % i == 0 && B % i == 0) {
				if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				}
			}
		} if(A % i == 0 && B % i == 0) {
				if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				}
			} A % i == 0 && B % i == 0 A % i == 0 A % i A i 0 B % i == 0 B % i B i 0 {
				if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				}
			} if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				} ans.size() == 0 ans.size() ans.size ans 0 {
					ans.put(defa, i);
				} ans.put(defa, i) ans.put ans defa i {
					ans.put(defa + 1, i);
					defa++;
				} ans.put(defa + 1, i) ans.put ans defa + 1 defa 1 i defa++ defa System.out.println(ans.get(ans.size() - K + 1)) System.out.println System.out System System.out ans.get(ans.size() - K + 1) ans.get ans ans.size() - K + 1 ans.size() - K ans.size() ans.size ans K 1 String[] args args public class Main{

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int A = Integer.parseInt(temp[0]);
		int B = Integer.parseInt(temp[1]);
		int K = Integer.parseInt(temp[2]);
		Map<Integer,Integer> ans = new HashMap<Integer,Integer>();


		int defa = 1;
		for(int i = 1; i <= 100; i++) {
			if(A % i == 0 && B % i == 0) {
				if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				}
			}
		}

		System.out.println(ans.get(ans.size() - K + 1));


	}

} public class Main{

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int A = Integer.parseInt(temp[0]);
		int B = Integer.parseInt(temp[1]);
		int K = Integer.parseInt(temp[2]);
		Map<Integer,Integer> ans = new HashMap<Integer,Integer>();


		int defa = 1;
		for(int i = 1; i <= 100; i++) {
			if(A % i == 0 && B % i == 0) {
				if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				}
			}
		}

		System.out.println(ans.get(ans.size() - K + 1));


	}

} Main
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main{

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		String[] temp = scanner.nextLine().split(" ");
		int A = Integer.parseInt(temp[0]);
		int B = Integer.parseInt(temp[1]);
		int K = Integer.parseInt(temp[2]);
		Map<Integer,Integer> ans = new HashMap<Integer,Integer>();


		int defa = 1;
		for(int i = 1; i <= 100; i++) {
			if(A % i == 0 && B % i == 0) {
				if(ans.size() == 0) {
					ans.put(defa, i);
				}else {
					ans.put(defa + 1, i);
					defa++;
				}
			}
		}

		System.out.println(ans.get(ans.size() - K + 1));


	}

}
