#include #include #include #include #include using namespace std; typedef long long Number; set numbers; vector primes; enum Ret { OK, BIG, SMALL }; Number low, high; Ret addNumber (Number num){ if (num < low) return SMALL; if (num > high) return BIG; numbers.insert(num); return OK; } void mult (Number num){ vector::iterator iter, end; for (iter = primes.begin(), end = primes.end(); iter != end; ++iter){ if (addNumber(num * *iter) == BIG) break; mult (num * *iter); } } int main(int argc, char** argv){ int primesCount; while (true){ cin >> primesCount; if (primesCount == 0) break; primes.clear(); primes.resize(primesCount); for (vector::iterator iter = primes.begin(), end = primes.end(); iter != end; ++iter) cin >> *iter; cin >> low >> high; numbers.clear(); addNumber(1); mult (1); if (numbers.size() == 0) cout << "none\n"; else { set::iterator iter = numbers.end(); --iter; copy (numbers.begin(), iter, ostream_iterator(cout, ",")); cout << *iter; cout << "\n"; } } cout << flush; return 0; }