Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include<vector>
- #include<algorithm>
- #include<math.h>
- #include<cstring>
- #include<map>
- #include<set>
- #include <cctype>
- #include <cmath>
- #include <cstdio>
- #include<string>
- using namespace std;
- int comp[10000001];
- void sieve() {
- comp[0] = comp[1] = 0;
- for (int i = 2; i <= 5e6; ++i) {
- if (!comp[i]) {
- //primes.push_back(i);
- for (int j = i + i; j <= 5e6; j += i) {
- int n = j;
- while (n%i == 0) {
- comp[j]++;
- n /= i;
- }
- }
- comp[i] = 1;
- }
- }
- for (int i = 3; i <= 5e6; ++i)
- comp[i] += comp[i - 1];
- //cout << comp[5000000] << endl;
- }
- int main() {
- int a, b;
- sieve();
- int css = 1;
- scanf("%d", &a);
- while (a>=0) {
- int ans = lower_bound(comp, comp + 5000001, a) - comp;
- if (ans == 5000001||comp[ans] != a)
- printf("Case %d: Not possible.\n",css);
- else
- printf("Case %d: %d!\n",css, ans);
- scanf("%d", &a);
- css++;
- }
- system("pause");
- }
Add Comment
Please, Sign In to add comment