#Description
求区间[a, b]内所有数的欧拉函数之和
#Algorithm
把每个欧拉函数求出来,然后累加,记录前面所有数的和,这样的话会更快,当然,不记录也没有什么关系
#Code
#include <iostream>
#include <cstring>
using namespace std;
const int maxb = 3000009;
__int64 f[maxb] = {0, 1};
void init()
{
for (int i = 2; i < maxb; i++)
if (f[i] == 0)
for (int j = i; j < maxb; j += i)
{
if (f[j] == 0) f[j] = j;
f[j] = (f[j] / i) * (i - 1);
}
for (int i = 1; i < maxb; i++)
f[i] += f[i - 1];
}
int main()
{
init();
int a, b;
while (cin >> a >> b) cout << f[b] - f[a - 1] << endl;
return 0;
}