import numpy as np

a,b,k = list(map(int,input().split()))

c = np.array(list(range(1,min(a,b)+1))) #a,bのうち小さい方の数字までのリスト

#両方が０のインデックスのリストを返して、後ろからk番目のインデックス番号のcをprint

e = [f for f,g in enumerate(zip(a%c,b%c)) if g == (0,0)]

print((c[e[-k]]))
a,b,k = list(map(int,input().split()))

c = []

for i in range(min(a,b)):

    if a%(i+1) == 0 and b%(i+1) == 0:

        c.append(i+1)

print((c[-k]))
import numpy as np

a, b, k = list(map(int, input().split()))
c = np.array(list(range(1, min(a, b) + 1)))  # a,bのうち小さい方の数字までのリスト
# 両方が０のインデックスのリストを返して、後ろからk番目のインデックス番号のcをprint
e = [f for f, g in enumerate(zip(a % c, b % c)) if g == (0, 0)]
print((c[e[-k]]))

a, b, k = list(map(int, input().split()))
c = []
for i in range(min(a, b)):
    if a % (i + 1) == 0 and b % (i + 1) == 0:
        c.append(i + 1)
print((c[-k]))

-import numpy as np - -c = np.array(list(range(1, min(a, b) + 1)))  # a,bのうち小さい方の数字までのリスト -# 両方が０のインデックスのリストを返して、後ろからk番目のインデックス番号のcをprint -e = [f for f, g in enumerate(zip(a % c, b % c)) if g == (0, 0)] -print((c[e[-k]])) +c = [] +for i in range(min(a, b)): +    if a % (i + 1) == 0 and b % (i + 1) == 0: +        c.append(i + 1) +print((c[-k]))