Cod sursa(job #1652069)
Utilizator | Andrei Puiu Andreiii500 | Data | 14 martie 2016 16:30:45 |
---|---|---|---|
Problema | Fractii | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.56 kb |
#include<fstream>
using namespace std;
ifstream in("fractii.in");
ofstream out("fractii.out");
const int N=1000001;
int v[N];
int n;
int main()
{
int i,j,sol;
in>>n;
v[1] = 1;
for(i=2; i<=n; ++i) v[i] = i;
sol = 1;
for(i=2; i<=n; ++i)
{
if(v[i] == i)
{
for(j=i*2; j<=n; j+=i)
v[j] = v[j] * (i-1) / i;
--v[i];
}
///out<<"v["<<i<<"] = "<<v[i]<<"\n";
sol += v[i]*2;
}
///sol = sol - 1;
out<<sol;
return 0;
}