Cod sursa(job #228083)

Utilizator hasegandaniHasegan Daniel hasegandani Data 6 decembrie 2008 13:29:48
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>

#define nmax 1000001

long long a[nmax];

int main()
{
    long long unsigned n,i,j,sol=0;
    freopen("fractii.in","r",stdin);
    freopen("fractii.out","w",stdout);
    scanf("%llu",&n);
    for(i=2;i<=n/2;++i)
		{
        if (a[i]==0)
                {
		        for(j=2*i;j<=n;j+=i)
			            if (a[j]==0)
                            a[j] = j - j/i;
                        else
                            a[j] -= a[j]/i;
                sol+=i-1;
                }
        else
            sol+=a[i];
        }
    for(i=n/2+1;i<=n;++i)
        if (a[i]==0)
            sol+=i-1;
        else
            sol+=a[i];
    printf("%llu",2*sol+1);
    return  0;
}