Cod sursa(job #786634)
| Utilizator | Data | 11 septembrie 2012 17:49:08 | |
|---|---|---|---|
| Problema | Fractii | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
using namespace std;
#include<fstream>
#include<vector>
#define dmax 1000001
vector<int>phi(dmax);
void calc_phi(int n)
{
int i;
phi[1]=1;
for(i=2;i<=n;i++)
phi[i]=i;
for(i=2;i<=n;i++)
if(phi[i]==i)
for(int j=i;j<=n;j+=i)
phi[j]*=(i-1),phi[j]/=i;
}
int main()
{
int n,i;
long long int nr=1;
ifstream f("fractii.in");
ofstream g("fractii.out");
f>>n;
calc_phi(n);
for(i=2;i<=n;i++)
nr+=2*phi[i];
g<<nr;
f.close();
g.close();
}
