Cod sursa(job #612570)
Utilizator | Alin H alinh | Data | 8 septembrie 2011 19:26:48 |
---|---|---|---|
Problema | Fractii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <fstream>
using namespace std;
ifstream fi;
ofstream fo;
int n;
float vec[1000002];
long long rez;
int main()
{
fi.open("fractii.in");
fi >> n;
fi.close();
vec[1] = 1;
for (int i=2; i <= n; i++)
vec[i] = i;
for (int i = 2; i <= n; i++)
{
if (vec[i] == i)
{
int p = i;
vec[i]--;
for (int j = (p + p); j <= n; j += p)
vec[j] = vec[j] * (1 - (1.0f/p));
}
}
rez = 1;
for (int i=2; i<=n; i++)
rez += 2*vec[i];
fo.open("fractii.out");
fo << rez;
fo.close();
return 0;
}