Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cmath>
- #include<bitset>
- #include<vector>
- #include<queue>
- #include<cstring>
- #include<map>
- #include<set>
- #include<iomanip>
- #include<unordered_map>
- #include<math.h>
- #include<string>
- #include <algorithm>
- using namespace std;
- #define ll long long
- #define ld long double
- #define pb push_back
- #define mp make_pair
- #define integ __int128
- const ll MOD = 1e9 + 7;
- const int N = 4e4 + 3;
- int a[N];
- int pr[20 * N];
- vector<int> primes;
- int n;
- int main()
- {
- ios_base::sync_with_stdio(false);
- cin.tie(0); cout.tie(0);
- srand(time(0));
- n = 4e4 + 3;
- // freopen("/Users/mitterr/Desktop/a.out" , "w" , stdout);
- vector<char> prime (n+1, true);
- prime[0] = prime[1] = false;
- for (int i = 2; i <= n; ++i)
- if (prime[i])
- {
- primes.pb(i);
- pr[i] = 1;
- if ( i * i <= n)
- {
- for (int j= i * i; j <= n; j += i)
- {
- prime[j] = false;
- }
- }
- }
- for(int i = 1; i < N; i++)
- {
- int p = i;
- int cnt = 0;
- for(int j : primes)
- {
- if(j * j > p) break;
- while (p % j == 0)
- {
- p /= j;
- ++cnt;
- }
- }
- if(p > 1) ++cnt;
- a[i] = cnt;
- }
- // cin >> p;
- // cout << fact(p) << "\n";
- int l , r;
- cin >> l >> r;
- // l = r = 0;
- int ans = 0;
- for(int i = l; i <= r; ++i)
- {
- int p = i;
- int cnt = 0;
- for(int j : primes)
- {
- if(j * j> p ) break;
- while (p % j == 0)
- {
- p /= j;
- ++cnt;
- }
- }
- if(p < N)
- cnt += a[p];
- else ++cnt;
- // cout << i << " " << cnt << "\n";
- if(pr[cnt]) ++ans;
- }
- cout << ans << "\n";
- // cout << (double)clock() / CLOCKS_PER_SEC << "\n";
- // cout << ans << "\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement