Cod sursa(job #169103)
| Utilizator | Data | 1 aprilie 2008 09:21:12 | |
|---|---|---|---|
| Problema | Fractii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include<stdio.h>
FILE *f=fopen("fractii.in","r");
FILE *g=fopen("fractii.out","w");
char viz[100000];
long v[20000],n,k;
long long x;
void ciur()
{
k=0;
for(long i=2;i<=n;i++)
if(!viz[i])
{++k;v[k]=i;
for(long j=i+i;j<=n;j+=i)
viz[j]=1;
}
}
void solve()
{
x=n*n-(n-1);
long t;
for(long i=1;i<=k;i++)
{
t=n/v[i]-1;
if(t>0)
x-=t*(t+1);
if(t==0)
break;
}
}
int main()
{
fscanf(f,"%ld",&n);
x=0;
ciur();
solve();
fprintf(g,"%lld",x);
return 0;
}