Pagini recente » Cod sursa (job #1915761) | Cod sursa (job #2400659) | Cod sursa (job #2251175) | Cod sursa (job #345285) | Cod sursa (job #53911)
Cod sursa(job #53911)
#include<stdio.h>
#define MAXN 1000005
#define MaxP 100005
long long a[MAXN],s;
long long i,n,b[MaxP],q,j;
FILE *f,*g;
int main()
{f=fopen("fractii.in","r");
g=fopen("fractii.out","w");
fscanf(f,"%lld",&n);
a[1]=1;b[1]=2;
a[2]=1;q=1;
for(i=4;i<=n;i*=2)
a[i]=a[i/2]*2;
for(i=3;i<=n;i+=2)
if(a[i]==0){a[i]=i-1;
for(j=i*i;j<=n;j*=i)
a[j]=a[j/i]*i;
for(j=1;j<=q;j++)
if(b[j]*i<=n)
a[b[j]*i]=a[b[j]]*a[i];
b[++q]=i;}
for(i=3;i<=n;i++)
if(a[i]==0)
for(j=1;i%b[j];j++)
a[i]=a[b[j]]*a[i/b[j]];
for(i=2;i<=n;i++)
s+=a[i];
fprintf(g,"%lld",s*2+1);
fclose(f);
fclose(g);
return 0;}