Cod sursa(job #1007376)
Utilizator | Data | 8 octombrie 2013 20:44:19 | |
---|---|---|---|
Problema | Fractii | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <fstream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
const int nmax= 1000000;
int phi[nmax+1];
int main()
{
int n;
fin>>n;
for ( int i= 1; i<=n; ++i )
phi[i]= i;
int sol= 1;
for ( int i= 2; i<=n; ++i )
{
if ( phi[i]==i )
for ( int j= i; j<=n; j+= i )
phi[j]= phi[j]/i*(i-1);
sol+= 2*phi[i];
}
fout<<sol;
return 0;
}