Cod sursa(job #518174)
Utilizator | Z.Z.Daniel blastoise | Data | 30 decembrie 2010 17:51:04 |
---|---|---|---|
Problema | Fractii | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <stdio.h>
long long N,aux,sol,n;
long p,i;
int main()
{
freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%lld",&n);
sol=N;
for(i=1;i<=n;i++)
{
N=i;
aux=N;
if(aux%2==0)
{
while(aux%2==0) aux/=2;
N/=2;
}
p=3;
do
{
if(aux%p==0)
{
while(aux%p==0) aux/=p;
N/=p;
N*=(p-1);
}
p+=2;
}while(aux!=1);
sol+=N;
}
printf("%lld\n",sol*2-1);
return 0;
}