Cod sursa(job #3191981)
Utilizator | Georgescu David davidgeo123 | Data | 11 ianuarie 2024 08:43:16 |
---|---|---|---|
Problema | Fractii | Scor | 30 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <bits/stdc++.h>
using namespace std;
const int MAXN=1000001;
int euler[MAXN+1];
void make_euler()
{
for(int i=1; i<=MAXN; i++)
euler[i]=i;
for(int i=2; i<=MAXN; i++)
if(euler[i]==i)
for(int j=i; j<=MAXN; j+=i)
euler[j]-=euler[j]/i;
}
int main()
{
ifstream fin("fractii.in");
ofstream fout("fractii.out");
make_euler();
int k;
fin>>k;
int suma=0;
for(int i=1; i<=k; i++)
suma+=euler[i];
fout<<2*suma-1;
return 0;
}