Cod sursa(job #270913)

Utilizator AndrewTheGreatAndrei Alexandrescu AndrewTheGreat Data 4 martie 2009 18:22:08
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <math.h>

using namespace std;

int main()
{
    char v[1000000];
    long var,i,j,n,s,euler;
    int f;
    ifstream in("fractii.in");
    ofstream out("fractii.out");
    in>>n;
    s=n;
    for(i=0;i<=n;i++)v[i]='a';
    for(i=2;i<=sqrt(n);i++)
        {
        j=i*i;
        while(j<=n)
        {
            v[j]='x';
            j=j+i;
        }
        }

    for(i=2;i<=n;i++)
       {
           var=i;
           euler=1;
           for(f=-1,j=2;j<=n;j++)
           if(v[j]=='a'&&var%j==0)
              {
              while(var%j==0)
                {var/=j;f++;}
              euler*=(j-1)*pow(j,f);
              f=-1;
              }
            s+=euler*n/i;
       }
    out<<s;
    out.close();
    in.close();
    return 0;
}