Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define F first
- #define S second
- #define L first
- #define R second
- #define X real()
- #define Y imag()
- #define pb push_back
- #define pf push_front
- #define cel(a, b) ((a) / (b) + ((a % b == 0) ? 0 : 1))
- typedef long long ll;
- typedef long double ld;
- typedef pair<int, int> pii;
- typedef pair<ll, ll> pll;
- typedef complex<ld> point;
- const int MAX = 1001000;
- ll a, b;
- ll f[MAX], n[MAX];
- bool vis[MAX];
- int main() {
- cin >> a >> b;
- for (ll i = 0; i <= b - a; i++)
- f[i] = 1, n[i] = i + a;
- for (ll p = 2; p * p <= b; p++) {
- if (vis[p])
- continue;
- for (ll x = p; x < MAX; x += p)
- vis[x] = true;
- for (ll x = cel(a, p) * p; x <= b; x += p) {
- ll &t = n[x - a], q = 1, s = 1;
- while (t % p == 0)
- t /= p, q *= p, s += q;
- f[x - a] *= s;
- }
- }
- for (ll i = 0; i <= b - a; i++) {
- if (n[i] != 1)
- f[i] *= 1ll + n[i];
- }
- ll ans = 0;
- for (ll i = 0; i <= b - a; i++)
- ans += f[i];
- cout << ans << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement