Cod sursa(job #228078)

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

#define nmax 1000001

unsigned long a[nmax],i,sol,n,j;

int main()
{
    freopen("fractii.in","r",stdin);
    freopen("fractii.out","w",stdout);
    scanf("%lu",&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("%lu",2*sol+1);
    return  0;
}