Cod sursa(job #640508)

Utilizator mlupseLupse-Turpan Mircea mlupse Data 25 noiembrie 2011 22:06:52
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <stdio.h>
#define NMAX 1000005
int N;
char prim[NMAX];
long long tot[NMAX];
long long S;
int main(void)
{
    int i, j;
    
    freopen("fractii.in", "r", stdin);
    freopen("fractii.out", "w", stdout);

    scanf("%d", &N);
	
	for(i=1;i<=N;i++)
		tot[i]=i;
    
	for (i = 2; i <= N; ++i)
        if (!prim[i])
        {
            tot[i]=i-1;
            for (j = i+i; j <= N; j += i)
				{
				prim[j] = 1;
				tot[j]=tot[j]/i*(i-1);
				}
			
        }
	for(i=1;i<=N;i++)
		S=S+1LL*tot[i];
		
	printf("%d",2*S-1);
    return 0;
}