#include #include #include using namespace std; set vse; int n; int p[20]; unsigned long long x, y; void ins(unsigned long long _n, int _l, int vnoreni = 0) { //printf("ins: %lld %d (%d)\n", _n, _l, vnoreni); if (_n >= x) vse.insert(_n); for (int i = _l; i < n; i++) { unsigned long long cislo = _n * p[i]; if (cislo > y) break; ins(cislo, i, vnoreni + 1); } } int main() { scanf("%d", &n); while (n > 0) { for (int i = 0; i < n; i++) scanf("%d", &p[i]); scanf("%lld %lld", &x, &y); /* //int bla[y-x+2]; int last = -1; for (int i = x; i <= y; i++) { int d = i; for (int j = 0; j < n; j++) { while (d % p[j] == 0) d /= p[j]; if (d == 1) break; } if (d == 1) { if (last > 0) printf("%d,", last); last = i; } } if (last > 0) printf("%d\n", last); else printf("none\n"); */ vse.clear(); ins(1, 0); bool f = false; for (set::iterator i = vse.begin(); i != vse.end(); ++i) { if (f) printf(","); printf("%lld", *i); f = true; } if (!f) printf("none"); printf("\n"); scanf("%d", &n); } return 0; }