Cod sursa(job #194482)

Utilizator MciprianMMciprianM MciprianM Data 11 iunie 2008 13:08:45
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<fstream>
using namespace std;
int phi[1000001], n;
int main(){
  int i;
  ifstream f("fractii.in");
  f>>n;
  f.close();
  phi[1]=1;
  phi[2]=1;
  phi[3]=2;
  phi[4]=2;
  phi[5]=4;
  for(i=6;i<=n;i++){
    int d=2,cat=1,nr=i;
    while(nr%d)  d++;
    cat=d-1;
    nr/=d;
    while(nr%d==0&&nr) {
      cat*=d;
      nr/=d;
    }
    phi[i]=phi[nr]*cat;
  }
  long long suma=0;
  for(i=2;i<=n;i++)
    suma+=phi[i];
  suma<<=1;
  ++suma;
  ofstream g("fractii.out");
  g<<suma<<'\n';
  g.close();
  return 0;
}