#include <cstdio>
#include <vector>
using namespace std;
int main(){
int k;
unsigned long long n;
unsigned long long m;
scanf("%d%llu", &k, &n);
vector<short> pierwsze = vector<short>(k);
for(int i = 0; i < k; ++i) scanf("%hd", &pierwsze[i]);
if(k == 1){
m = n;
unsigned long long nee = 1;
while(m >= pierwsze[0]){
m /= pierwsze[0];
nee *= pierwsze[0];
}
printf("%llu\n", nee);
return 0;
}
while(1){
m = n;
for(int i = 0; i < k; ++i){
while(m%pierwsze[i] == 0) m /= pierwsze[i];
//printf("T: %llu\n", m);
}
if(m == 1){
printf("%llu\n", n);
return 0;
}
--n;
}
}
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 39 40 41 42 43 44 45 | #include <cstdio> #include <vector> using namespace std; int main(){ int k; unsigned long long n; unsigned long long m; scanf("%d%llu", &k, &n); vector<short> pierwsze = vector<short>(k); for(int i = 0; i < k; ++i) scanf("%hd", &pierwsze[i]); if(k == 1){ m = n; unsigned long long nee = 1; while(m >= pierwsze[0]){ m /= pierwsze[0]; nee *= pierwsze[0]; } printf("%llu\n", nee); return 0; } while(1){ m = n; for(int i = 0; i < k; ++i){ while(m%pierwsze[i] == 0) m /= pierwsze[i]; //printf("T: %llu\n", m); } if(m == 1){ printf("%llu\n", n); return 0; } --n; } } |
English