$\Sigma_i A_i = n$であるので答え$d = \mathrm{gcd}(A)$は$n$を割り切る$d \mid n$必要がある。 $l = |A|$に対し$2 \le l \le k$である必要がある。 これ以外に特に制約はなく、$d = \max \{ d \mid (d \mid n) \land \exists l. (2 \le l \le k \land dl \le n) \}$。 $\exists$は消去できて、$k$に依らず$d = \max \{ d \mid (d \mid n) \land 2d \le n) \}$でよい。

#!/usr/bin/env python3
n, k = map(int,input().split())
for d in range(n, 1-1, -1):
    if n % d == 0 and d * 2 <= n:
        print(d)
        break