Pagini recente » Cod sursa (job #2417952) | Cod sursa (job #354439) | Cod sursa (job #166404) | Cod sursa (job #847221) | Cod sursa (job #1952120)
#include <stdio.h>
using namespace std;
FILE*f=fopen("fractii.in","r");
FILE*g=fopen("fractii.out","w");
int n,v[1000010],t[1000010],s,p,i,j,e,x,y;
void ciur(){
v[1]=1;
int d,i;
for (d=2;d*d<=n;d++)
if (!v[d]) for (i=2;i*d<=n;i++) v[d*i]=1;
}
int main()
{
fscanf(f,"%d",&n);
ciur();
t[1]=1;
s=1;
for (i=2;i<=n;i++){
if (!v[i]) t[i]=i-1;
else{
for (j=2;j*j<=i;j++)
if (i%j==0) {p=j;break;}
e=0;x=i;y=1;
while (x%p==0){
x/=p;
e++;
y*=p;
}
y/=p;
t[i]=(p-1)*y*t[x];
}
s+=t[i]*2;
}
fprintf(g,"%d",s);
fclose(f);
fclose(g);
return 0;
}