题意:求a到b的所有欧拉函数值;
Input
There are several test cases. Each line has two integers a, b (2
#include<stdio.h>
#include<math.h>
int a[3000001];
void euler()
{
int i,j;
for(i=1;i<=3000000;i++)
a[i]=i;
for(i=2;i<=3000000;i++)
if(a[i]==i)
{
for(j=i;j<=3000000;j=j+i)
a[j]=a[j]/i*(i-1);
}
}
int main(void)
{
int n,m;
euler();
while(~scanf("%d%d",&n,&m))
{
__int64 s=0;
for(int i=n;i<=m;i++)
{
s=s+a[i];
}
printf("%I64d\n",s);
}
}