Mai intai trebuie sa te autentifici.
Cod sursa(job #2749888)
Utilizator | Data | 8 mai 2021 21:44:05 | |
---|---|---|---|
Problema | Fractii | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int n;
const int nmax = 1e6 + 1;
bitset<nmax> prime;
int a[nmax];
int main()
{
fin >> n;
int i , j;
long long result = 0;
for(i=1;i<=n;++i)
a[i] = i;
for(i=4;i<=n;i+=2 )
{prime[i] = 1;
a[i]/= 2;
}
for(i=3;i<=n;i+=2)
if(prime[i] == 0)
{ a[i] = i-1;
for(j=2*i;j<=n;j+=i)
{prime[j] = 1;
a[j] /= i;
a[j] *= (i-1);
}
}
for(i=3;i<=n;++i)
{result += 2LL*a[i];
//fout << a[i] << "\n";
}
fout << result + 1 + 2;
return 0;
}