Cod sursa(job #402489)

Utilizator ClasianMunteanu Petre Clasian Data 23 februarie 2010 21:38:25
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream.h>
#include<math.h>
ifstream f("fractii.in");
ofstream g("fractii.out");
int fi(int n)
{ int p=n;int m=n>>1;
  
  if(n%2==0) { p>>=1;
               while(n%2==0)n>>=1;
             }
  
  for(int i=3;i<=m;i+=2) if(n%i==0) { p/=i;
                                      p*=i-1;
                                      while(n%i==0)n/=i;
                                    }
  return p;
}
int n,i,a,b;
int main()
{ f>>n; 
  if(n<4) { if(n==1)g<<1;
            else if(n==2)g<<3;
                 else if(n==3)g<<7;
          }
  else {  a=7;
          for(i=4;i<=n;i++) { b=a+(fi(i)<<1);
                      a=b;
                    }
  g<<a;
       }
  f.close();
  g.close();
  return 0;
}