import std.stdio;
import std.string;
import std.conv;
import std.algorithm;
import std.array;
 
void main() {
	auto data = readln().split();
	auto A = data[0].to!int(), B = data[1].to!int(), K = data[2].to!int();
	int[] list;
	foreach_reverse(i;  1 .. min(A, B)+1) {
		if (A % i == 0 && B % i == 0) list ~= i;
	}
	writeln(list[K-1]);
}