Cod sursa(job #56524)
Utilizator | Wrong name DjSefu | Data | 29 aprilie 2007 20:11:47 |
---|---|---|---|
Problema | Fractii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include<stdio.h>
FILE *f=fopen("fractii.in","r"),
*g=fopen("fractii.out","w");
long long a[1000000],i,j,n,k;
int main()
{ fscanf(f,"%lld",&n);
for(i=1;i<=n;i++) a[i]=n;
for(i=2;i<=n;i++){ if(a[i]==n) { for(j=i;j<=n;j+=i){ a[i]--;
}
for(j=i+i;j<=n;j+=i) a[j]=a[j]-(n-a[i])+1;
}
else a[i]--;
k+=a[i];
}
k+=n;
fprintf(g,"%lld\n",k);
fclose(f);
fclose(g);
return 0;
}