#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define F first
#define S second
#define pii pair <int, int>
#define sz(a) (int)(a.size())
#define resize(v) v.resize(unique(all(v)) - v.begin());
#define all(a) a.begin(), a.end()
#define forit(it, s) for(__typeof(s.begin()) it = s.begin(); it != s.end(); it ++)
using namespace std;
void Fast_Read_Out()
{
ios_base::sync_with_stdio(0);
cin.tie(), cout.tie();
}
void Random()
{
unsigned int seed;
asm("rdtsc" : "=A" (seed));
srand(seed);
}
unsigned int Time()
{
unsigned int time = clock() / 1000.00;
return time;
}
const int inf = int(1e9) + 123;
const int N = int(1e7) + 1;
vector <int> v, z;
int lp[N], d[N];
vector <int> pr;
vector <pair <int, int> > per;
void Resheto()
{
for(int i = 2; i <= N - 1; i++)
{
if(lp[i] == 0)
{
lp[i] = i;
pr.pb(i);
}
for(int j = 0; j < sz(pr) && pr[j] <= lp[i] && pr[j] * i * 1ll <= N - 1; j++) lp[pr[j] * i] = pr[j];
}
}
void Prime_Multipliers(int x)
{
int del = 2;
int ans = 1;
v.clear();
while(x > 1)
{
if(d[x])
{
v.pb(del);
break;
}
while(x % del == 0) v.pb(del), x /= del;
del++;
}
}
int main ()
{
#ifdef JUDGE
freopen("input.txt", "r", stdin);
#endif
Random();
Fast_Read_Out();
int a, b;
cin >> a >> b;
Resheto();
for(int i = 0; i < sz(pr); i++) d[pr[i]]++;
long long res = 0;
if(a == 1) a++, res++;
for(int j = a; j <= b; j++)
{
if(d[j])
{
res += j - 1;
continue;
}
Prime_Multipliers(j);
per.clear();
int b1 = 1, q = v[0], n = 1;
for(int i = 1; i < sz(v); i++)
{
if(q != v[i])
{
per.pb(mp(q, n + 1));
q = v[i];
n = 2;
}
else n++;
}
per.pb(mp(q, n));
long long k = 1;
for(int i = 0; i < sz(per); i++)
{
int sn = b1 * (1 - pow(per[i].F, per[i].S)) / (1 - per[i].F);
k *= sn;
}
if(k > j) k -= j;
res += abs(j - k);
}
cout << res << endl;
#ifdef JUDGE
// cout << Time() << endl;
#endif
}
// Easy Peasy Lemon Squeezy Sometimes it's the very people who no one imagines anything of who do the things no one can imagine.
Compilation message
savrsen.cpp: In function 'void Prime_Multipliers(int)':
savrsen.cpp:57:6: warning: unused variable 'ans' [-Wunused-variable]
int ans = 1;
^~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
184 ms |
81392 KB |
Output isn't correct |
2 |
Incorrect |
231 ms |
81408 KB |
Output isn't correct |
3 |
Incorrect |
222 ms |
81624 KB |
Output isn't correct |
4 |
Incorrect |
206 ms |
81624 KB |
Output isn't correct |
5 |
Execution timed out |
3050 ms |
81624 KB |
Time limit exceeded |
6 |
Execution timed out |
3038 ms |
81624 KB |
Time limit exceeded |
7 |
Execution timed out |
3030 ms |
81624 KB |
Time limit exceeded |
8 |
Incorrect |
1744 ms |
81688 KB |
Output isn't correct |