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
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

int tab[1000000];
int main()
{
int k,i;
long long n, m;
scanf("%d%lld",&k,&n);
for(i = 0; i < k; ++i){
	scanf("%d",&tab[i]);
}
sort(tab,tab+k);
while(tab[k-1] > n) --k;
while(n > 0){
	m = n;
	//cout << m << endl;
	for(i = k - 1; i >= 0; --i){
		//if(m < tab[i]) break;
		while(m%tab[i]==0) {
			m=m/tab[i];	
			//cout <<"dzielnik "<<tab[i] <<endl;
		}
		if(m==1) {
			printf("%lld\n", n);
			return 0;
		}
		
	}
	--n;	
}
printf("1");
return 0;
}