Cod sursa(job #246914)

Utilizator klamathixMihai Calancea klamathix Data 21 ianuarie 2009 20:34:38
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<stdio.h>

long int N,i,p,k,j,primes[7]={2,3,5,7,11,13,17},div[7],ratio=1;
long long int S;
float tot;


void totient(long int a)
{
tot=a;
j=ratio=1;
i=2;
while(a!=1)
{
 if(a%i==0)
  {
   div[j]=i; j++;
   while(a%i==0)
    {
     a/=i;
    }
   }
   i+=ratio;
   if(i==3) ratio ++;
}
for(i=1;i<=j-1;i++)
 {
  tot*=1-float(1/float(div[i]));
 }
}

int main()

{

freopen("fractii.in","r",stdin);
freopen("fractii.out","w",stdout);
scanf("%ld",&N);
for(k=1;k<=N;k++)
{
if(k==1) tot=1;
else
totient(k);
S+=int(tot);
}

printf("%lld",S*2-1);



fcloseall();
return 0;
}