#include<bits/stdc++.h> using namespace std; #define lli long long int k, prime[40]; lli N, wyn=1; void DFS(lli v, int blep) { if(v>wyn)wyn=v; for(int i=blep;i<=k;i++) { if(N/prime[i]<v)break; else DFS(v*prime[i], i); } } int main() { scanf("%d%lld", &k, &N); for(int i=1;i<=k;i++)scanf("%d", &prime[i]); sort(prime+1, prime+k+1); DFS((lli)1, 1); printf("%lld\n", wyn); return 0; }
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 | #include<bits/stdc++.h> using namespace std; #define lli long long int k, prime[40]; lli N, wyn=1; void DFS(lli v, int blep) { if(v>wyn)wyn=v; for(int i=blep;i<=k;i++) { if(N/prime[i]<v)break; else DFS(v*prime[i], i); } } int main() { scanf("%d%lld", &k, &N); for(int i=1;i<=k;i++)scanf("%d", &prime[i]); sort(prime+1, prime+k+1); DFS((lli)1, 1); printf("%lld\n", wyn); return 0; } |