Cod sursa(job #2238027)
| Utilizator | Data | 4 septembrie 2018 11:47:58 | |
|---|---|---|---|
| Problema | Fractii | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
short* phi;
std::fstream fi ("fractii.in", std::ios::in);
std::fstream fo ("fractii.out", std::ios::out);
int main (void) {
unsigned n;
unsigned long res = 0;
fi >> n;
phi = (short*) malloc ((n + 10) * sizeof (short));
for (unsigned short i = 2; i <= n; ++i)
phi[i] = i - 1;
for (unsigned short i = 2; i <= n; ++i) {
for (unsigned short j = (i << 1); j <= n; j += i)
phi[j] -= phi[i];
res += phi[i];
}
fo << (res << 1) + 1;
free (phi);
return 0;
}
