1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <vector>
#include <cstdio>
typedef unsigned long long ll;
typedef std::vector<ll> vi;
bool podzielna(vi & v, ll & liczba){
	for(auto it = v.begin(); it!=v.end(); it++)
		if(liczba%(*it) == 0){
			liczba /= (*it);
			return true;
		}
	return false;		
}
void Spr(vi & v, ll liczba, bool & end){
	ll copy = liczba;
		while(liczba > 1)
		if(!podzielna(v, liczba))
			break;
	if(liczba == 1){
		std::printf("%llu", copy);
		end = true;
	}
}
int main(void){
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(0);
	 ll n, p, w;
	bool pp = false;
	std::scanf("%llu", &n);
	std::scanf("%llu", &p);
	vi dane;
	while(n--){
		std::scanf("%llu", &w);
		dane.push_back(w);
	}
	while(!pp)
		Spr(dane, p--, pp);		
}