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

long long NWD(long long a,long long b)
{
    while(b)swap(a%=b,b);
    return a;
}

int main()
{
    long long k,N,a,p=1,x=1;
    cin>>k>>N;
    for(int i=0;i<k;i++)
    {
        cin>>a;
        p=p*a;
    }
    while(N>1)
    {
        a=N;
        while(a>1)
        {
            if(NWD(a,p)==1)break;
            else a=a/NWD(a,p);
            if(a==1)
            {
                x=N;
                N=1;
            }
        }
        N--;
    }
    cout<<x;
    return 0;
}