#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; } } |