Cod sursa(job #198652)
| Utilizator | Data | 13 iulie 2008 15:22:55 | |
|---|---|---|---|
| Problema | Fractii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <stdio.h>
long prim[500000];
long prim1[10000];
long n,i,j,l;
bool b;
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%ld",&n);
i=2;
while(i<=n/2)
{
while((i<=n/2)||(prim[i]))i++;
for(j=2*i;j+i<=n/2;j+=i) prim[j]=1;
}
j=1;
for(i=1;i<=n/2;i++)
if(!prim[i])
{
prim1[j]=i;j++;
}
l=n*n-(n-1);
for(i=2;i<=(j-1);i++)
{
l-=(n/prim1[i])*(n/prim1[i]-1);
}
printf("%ld\n",l);
return 0;
}
