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
#include <iostream>

using namespace std;
const int MAX = 100;
long long n;
int k, p[MAX];
  
int main()
{
  //rozmiar zbioru liczb pierwszych i ograniczenie
  cin >> k >> n;
  //zadane liczby pierwsze
  for (int i=0;i<k;i++){
  	cin>> p[i];
  }
  
  for (int i=n; i>0;i--){
  	long long d = i;
  	int j = 0;
  	while (j<k){
  	if (d % p[j] == 0){
  		d = d/p[j];
  		if (d==1){
  			cout << i;
  			return 0;
  		}	
  	} else {
  		j++;
  	}
   }
  }
   cout << 1;
  return 0;
}