Cod sursa(job #1007380)
| Utilizator | Data | 8 octombrie 2013 20:50:03 | |
|---|---|---|---|
| Problema | Fractii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <fstream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
typedef long long i64;
const int nmax= 1000000;
int phi[nmax+1];
int main()
{
int n;
fin>>n;
for ( int i= 1; i<=n; ++i ) {
phi[i]= i;
}
i64 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;
}
