Cod sursa(job #188892)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 10 mai 2008 17:52:47
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>   
unsigned long long phi[1000001],i,j,k,sol,n;
int main()
{   
    freopen("fractii.in","rt",stdin);
    freopen("fractii.out","wt",stdout);
    scanf("%llu",&n);
    phi[1]=1;sol=1;
    for(i=2;i<=n;i++)
    { if(!phi[i])
      { phi[i]=i-1;
        for(j=i*i;j<=n;j+=i)
        { if(phi[j])continue;
          phi[j]=i;
        }
      }
      else
      { j=phi[i]; phi[i]=j-1; k=i/j;
        while(k%j==0){phi[i]*=j;k/=j;}
        phi[i]*=phi[k];
      }
      sol+=2*phi[i];
     }
     printf("%llu",sol);
     return 0;
}