Cod sursa(job #83883)

Utilizator principeleMatei Constantin principele Data 12 septembrie 2007 11:31:47
Problema Fractii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
#define Nmax 1000000

long N=0;
long A[Nmax];

int main ()
{
    
    FILE *in = fopen ("fractii.in", "rt");
    FILE *out = fopen ("fractii.out", "wt");
    
    fscanf (in, "%ld", &N);
    
    A[1]=0;
    
    for (long i=2;i<=N;i++)
    {
        if(!A[i])
        {
                A[i]=i-1;
                for(long j=2;j<=N/i;j++)
                {
                        if(!A[i*j])
                                   A[i*j]=i*j;
                        A[i*j]*=(i-1);
                        A[i*j]/=i;
                }
        }
    }
    
    long long Sol=0;
    for(long i=1;i<=N;i++)
            Sol+=A[i];
    Sol=Sol*2+1;
    
    fprintf (out, "%lld", Sol);
    
    fclose (in);
    fclose (out);
    
    return 0;
}