import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
        int k = sc.nextInt();
      
        //AとBの小さい方を取得
        int min = Math.min(a, b);
        
        //公約数のリスト
		List<Integer> ary = new ArrayList<>();

        for(int i=1; i <= min; i++) {
        	if(a % i == 0 && b % i ==0) {
        		ary.add(i);
        	}
		}
                
        System.out.print(ary.get(ary.size()-k));
	}
} import java.util.ArrayList; ArrayList java.util import java.util.List; List java.util import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
        int k = sc.nextInt();
      
        //AとBの小さい方を取得
        int min = Math.min(a, b);
        
        //公約数のリスト
		List<Integer> ary = new ArrayList<>();

        for(int i=1; i <= min; i++) {
        	if(a % i == 0 && b % i ==0) {
        		ary.add(i);
        	}
		}
                
        System.out.print(ary.get(ary.size()-k));
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
        int k = sc.nextInt();
      
        //AとBの小さい方を取得
        int min = Math.min(a, b);
        
        //公約数のリスト
		List<Integer> ary = new ArrayList<>();

        for(int i=1; i <= min; i++) {
        	if(a % i == 0 && b % i ==0) {
        		ary.add(i);
        	}
		}
                
        System.out.print(ary.get(ary.size()-k));
	} main {
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
        int k = sc.nextInt();
      
        //AとBの小さい方を取得
        int min = Math.min(a, b);
        
        //公約数のリスト
		List<Integer> ary = new ArrayList<>();

        for(int i=1; i <= min; i++) {
        	if(a % i == 0 && b % i ==0) {
        		ary.add(i);
        	}
		}
                
        System.out.print(ary.get(ary.size()-k));
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int a = sc.nextInt(); a sc.nextInt() sc.nextInt sc int b = sc.nextInt(); b sc.nextInt() sc.nextInt sc int k = sc.nextInt(); k sc.nextInt() sc.nextInt sc int min = Math.min(a, b); min Math.min(a, b) Math.min Math a b List<Integer> ary = new ArrayList<>(); ary new ArrayList<>() for(int i=1; i <= min; i++) {
        	if(a % i == 0 && b % i ==0) {
        		ary.add(i);
        	}
		} int i=1; int i=1; i 1 i <= min i min i++ i++ i {
        	if(a % i == 0 && b % i ==0) {
        		ary.add(i);
        	}
		} {
        	if(a % i == 0 && b % i ==0) {
        		ary.add(i);
        	}
		} if(a % i == 0 && b % i ==0) {
        		ary.add(i);
        	} a % i == 0 && b % i ==0 a % i == 0 a % i a i 0 b % i ==0 b % i b i 0 {
        		ary.add(i);
        	} ary.add(i) ary.add ary i System.out.print(ary.get(ary.size()-k)) System.out.print System.out System System.out ary.get(ary.size()-k) ary.get ary ary.size()-k ary.size() ary.size ary k String[] args args public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
        int k = sc.nextInt();
      
        //AとBの小さい方を取得
        int min = Math.min(a, b);
        
        //公約数のリスト
		List<Integer> ary = new ArrayList<>();

        for(int i=1; i <= min; i++) {
        	if(a % i == 0 && b % i ==0) {
        		ary.add(i);
        	}
		}
                
        System.out.print(ary.get(ary.size()-k));
	}
} public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
        int k = sc.nextInt();
      
        //AとBの小さい方を取得
        int min = Math.min(a, b);
        
        //公約数のリスト
		List<Integer> ary = new ArrayList<>();

        for(int i=1; i <= min; i++) {
        	if(a % i == 0 && b % i ==0) {
        		ary.add(i);
        	}
		}
                
        System.out.print(ary.get(ary.size()-k));
	}
} Main
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
        int k = sc.nextInt();
      
        //AとBの小さい方を取得
        int min = Math.min(a, b);
        
        //公約数のリスト
		List<Integer> ary = new ArrayList<>();

        for(int i=1; i <= min; i++) {
        	if(a % i == 0 && b % i ==0) {
        		ary.add(i);
        	}
		}
                
        System.out.print(ary.get(ary.size()-k));
	}
}