Cod sursa(job #2442205)
Utilizator | Data | 23 iulie 2019 11:48:59 | |
---|---|---|---|
Problema | Fractii | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <fstream>
using namespace std;
ifstream f ("fractii.in");
ofstream g ("fractii.out");
int v[1000001];
int main ()
{
int i, j, n;
long long nr = 0;
f>>n;
/** luam doar fractiile subunitare:
1/2
1/3, 2/3
1/4, 2/4, 3/4, ..
...
1/n, ... (n-1)/n
*/
for (i=2; i<=n; i++) //i = numitor
v[i] = i-1;
//triem
for (i=2; i<=n; i++)
{
nr += v[i];
for (j=2*i; j<=n; j+=i) ///elimina 2/4, 2/6, ...
v[j] -= v[i];
}
g<<2*nr+1; ///cazul 1/1 + de 2* fractiile supraunitare (sunt simetrice, ex: 2/3, 3/2)
}