Pagini recente » Cod sursa (job #303329) | Cod sursa (job #2642382) | Cod sursa (job #461853) | Rating PauL IepaN (PauL.IepaN) | Cod sursa (job #2697568)
#include <fstream>
#include <iostream>
using namespace std;
bool e[1000001];
int a[100001];
int k;
void Ciur() {
int i, j;
e[1] = 1;
for (i = 2; i * i <= 1000000; i++)
if (e[i] == 0)
for (j = 2; j * i <= 1000000; j++)
e[i * j] = 1;
for (i = 2; i <= 1000000; i++)
if (!e[i])
a[++k] = i;
}
int main() {
int n, i, d, ci, r;
long long rez = 0;
ifstream f("fractii.in");
f >> n;
f.close();
Ciur();
rez = 0;
for (i = 2; i <= n; i++) {
d = 1, ci = i, r = i;
while (ci != 1) {
if (ci % a[d] == 0) {
r = r / a[d] * (a[d] - 1);
while (ci % a[d] == 0)
ci /= a[d];
}
d++;
if (a[d] * a[d] > ci && ci != 1) {
r = r / ci * (ci - 1);
break;
}
}
rez += r;
}
ofstream g("fractii.out");
g << 2 * rez + 1;
g.close();
return 0;
}