Cod sursa(job #2421342)

Utilizator ralfd123Amariei Andrei ralfd123 Data 14 mai 2019 19:50:16
Problema Fractii Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("fractii.in");///Andrei.in
ofstream g("fractii.out");

unsigned n;
int Erath[1000010];
unsigned fractii;

int Descomp_factori_primi(unsigned n)
{   int d=2,FiN=1;
    while( n > 1 )
    {   int p=0;

        if( d * d > n ) d=n;

        while( n % d == 0 )
        {   n/=d;
            p++;
        }

        if( p > 0 ) FiN *= (d-1)*pow(d,p-1);

        d++;
    }
    return FiN;
}

int main()
{   f>>n; fractii=1;

    for(int i=1;i<=n;++i) Erath[i]=i;

    for(int i=2;i<=n;++i)
        if( Erath[i] == i )
            fractii+=(2*Descomp_factori_primi(i));
        else
            for(int j=2*i;j<=n;j+=i)
                Erath[j]=0;

    g<<fractii;

g.close();
return 0;
}