//パラメータ値の最大公約数を求める式
function gcd(a, b) {
  if (b === 0){
    return a
  }
  return gcd(b, a % b)
}
function getDivisorList(n) {
  var divisorlist = [];
  var flg = 0;
  //約数の一覧を求める
  for ( var i = 1 ; i <= Math.floor(n/2) ; i++ ){
  	if ( n%i == 0) {
      //配列に登録していく
      divisorlist.push(i);
    }
  }
  //引数の値自体を配列の最後に登録する
  divisorlist.push(n);
  return divisorlist;
}
function Main(input){
  input = input.split("\n");
  inputStr = input[0].split(" ");
  var A = Number.parseInt(inputStr[0]);
  var B = Number.parseInt(inputStr[1]);
  var K = Number.parseInt(inputStr[2]);
  //AとBの最大公約数=gcdを求める
  var gcdval = gcd(A,B);
  //gcdの約数一覧を求める
  var results = getDivisorList(gcdval);
  //約数一覧の内、最大からK番目の値を求める。
  console.log(results[results.length - K]);
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));