Pagini recente » Borderou de evaluare (job #2021749) | Cod sursa (job #712623) | Borderou de evaluare (job #2300975) | Borderou de evaluare (job #2912996) | Cod sursa (job #2749017)
#include <fstream>
#include <vector>
static constexpr int MAXN = 1000009;
static constexpr int MAXD = 10;
int v[MAXN][MAXD];
int sz[MAXN];
int main()
{
std::ifstream f("fractii.in");
int n;
f >> n;
f.close();
long long sum = 1;
for (int i = 2; i <= n; i++)
{
if (sz[i] == 0)
{
for (int j = i; j <= n; j += i)
{
v[j][sz[j]++] = i;
}
}
int s = sz[i];
long long t = i;
for (int j = 0; j < sz[i]; j++)
{
t *= (v[i][j] - 1);
t /= v[i][j];
}
sum += t * 2;
}
std::ofstream g("fractii.out");
g << sum << std::endl;
g.close();
return 0;
}