import java.util.Scanner;

public class Main{
  static int gcd(int a ,int b){return b>0? gcd(b,a%b):a;}
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int a = sc.nextInt();
    int b = sc.nextInt();
    int k = sc.nextInt();
    int count = 0;
    int max_gcd = gcd(a,b);
    int ans=0;

    for(int i= max_gcd; i>0; i--){
      if(a%i==0 && b%i==0){
        count += 1;
      }
      if(count == k){
        ans = i;
        break;
      }
    }
    System.out.println(ans);

  }
} import java.util.Scanner; Scanner java.util public class Main{
  static int gcd(int a ,int b){return b>0? gcd(b,a%b):a;}
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int a = sc.nextInt();
    int b = sc.nextInt();
    int k = sc.nextInt();
    int count = 0;
    int max_gcd = gcd(a,b);
    int ans=0;

    for(int i= max_gcd; i>0; i--){
      if(a%i==0 && b%i==0){
        count += 1;
      }
      if(count == k){
        ans = i;
        break;
      }
    }
    System.out.println(ans);

  }
} Main static int gcd(int a ,int b){return b>0? gcd(b,a%b):a;} gcd {return b>0? gcd(b,a%b):a;} return b>0? gcd(b,a%b):a; b>0? gcd(b,a%b):a b>0 b 0 gcd(b,a%b) gcd b a%b a b a int a a int b b public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int a = sc.nextInt();
    int b = sc.nextInt();
    int k = sc.nextInt();
    int count = 0;
    int max_gcd = gcd(a,b);
    int ans=0;

    for(int i= max_gcd; i>0; i--){
      if(a%i==0 && b%i==0){
        count += 1;
      }
      if(count == k){
        ans = i;
        break;
      }
    }
    System.out.println(ans);

  } main {
    Scanner sc = new Scanner(System.in);
    int a = sc.nextInt();
    int b = sc.nextInt();
    int k = sc.nextInt();
    int count = 0;
    int max_gcd = gcd(a,b);
    int ans=0;

    for(int i= max_gcd; i>0; i--){
      if(a%i==0 && b%i==0){
        count += 1;
      }
      if(count == k){
        ans = i;
        break;
      }
    }
    System.out.println(ans);

  } 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 count = 0; count 0 int max_gcd = gcd(a,b); max_gcd gcd(a,b) gcd a b int ans=0; ans 0 for(int i= max_gcd; i>0; i--){
      if(a%i==0 && b%i==0){
        count += 1;
      }
      if(count == k){
        ans = i;
        break;
      }
    } int i= max_gcd; int i= max_gcd; i max_gcd i>0 i 0 i-- i-- i {
      if(a%i==0 && b%i==0){
        count += 1;
      }
      if(count == k){
        ans = i;
        break;
      }
    } {
      if(a%i==0 && b%i==0){
        count += 1;
      }
      if(count == k){
        ans = i;
        break;
      }
    } if(a%i==0 && b%i==0){
        count += 1;
      } a%i==0 && b%i==0 a%i==0 a%i a i 0 b%i==0 b%i b i 0 {
        count += 1;
      } count += 1 count 1 if(count == k){
        ans = i;
        break;
      } count == k count k {
        ans = i;
        break;
      } ans = i ans i break; System.out.println(ans) System.out.println System.out System System.out ans String[] args args public class Main{
  static int gcd(int a ,int b){return b>0? gcd(b,a%b):a;}
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int a = sc.nextInt();
    int b = sc.nextInt();
    int k = sc.nextInt();
    int count = 0;
    int max_gcd = gcd(a,b);
    int ans=0;

    for(int i= max_gcd; i>0; i--){
      if(a%i==0 && b%i==0){
        count += 1;
      }
      if(count == k){
        ans = i;
        break;
      }
    }
    System.out.println(ans);

  }
} public class Main{
  static int gcd(int a ,int b){return b>0? gcd(b,a%b):a;}
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int a = sc.nextInt();
    int b = sc.nextInt();
    int k = sc.nextInt();
    int count = 0;
    int max_gcd = gcd(a,b);
    int ans=0;

    for(int i= max_gcd; i>0; i--){
      if(a%i==0 && b%i==0){
        count += 1;
      }
      if(count == k){
        ans = i;
        break;
      }
    }
    System.out.println(ans);

  }
} Main
import java.util.Scanner;

public class Main{
  static int gcd(int a ,int b){return b>0? gcd(b,a%b):a;}
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int a = sc.nextInt();
    int b = sc.nextInt();
    int k = sc.nextInt();
    int count = 0;
    int max_gcd = gcd(a,b);
    int ans=0;

    for(int i= max_gcd; i>0; i--){
      if(a%i==0 && b%i==0){
        count += 1;
      }
      if(count == k){
        ans = i;
        break;
      }
    }
    System.out.println(ans);

  }
}