Cod sursa(job #189622)

Utilizator thebest001Neagu Rares Florian thebest001 Data 16 mai 2008 12:58:30
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 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)  
 
           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;   

}