// UVa 10852 - Less Prime #include <iostream> #include <vector> #include <string.h> using namespace std; int oo[1]; int main() { memset(oo, 127, sizeof(oo)); // sieve vector<int> prime; bool isprime[10001]; memset(isprime, true, sizeof(isprime)); prime.push_back(2); for (int i = 4; i <= 10000; i += 2) isprime[i] = false; for (int i = 3; i <= 10000; i++) if (isprime[i]) { for (int j = i * i; j <= 10000; j += (i << 1)) isprime[j] = false; prime.push_back(i); } // main int t; for (cin >> t; t; t--) { // input int n; cin >> n; // solve int sol = oo[0], s; for (int i = 0; i < prime.size() && prime[i] <= n; i++) { int x = prime[i]; int p = n / x; if (p * x < sol) { sol = p * x; s = x; } } cout << s << endl; } return 0; }
Wednesday, September 30, 2015
UVa 10852 - Less Prime
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment