Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4246 Accepted Submission(s): 1767
3 100
3042
#include <cstdio> #include <cstring> #include <cmath> #define LL long long #define MAX 3000000+10 using namespace std; LL eu[MAX]; void euler() { int i, j; for(i = 2; i < MAX; i++) { if(!eu[i]) { for(j = i; j < MAX; j += i) { if(!eu[j]) eu[j] = j; eu[j] = eu[j] * (i-1) / i; } } eu[i] += eu[i-1]; } } int main() { int a, b; euler(); while(scanf("%d%d", &a, &b) != EOF) { printf("%lld\n", eu[b]-eu[a-1]); } return 0; }