Pagini recente » Cod sursa (job #1745879) | Cod sursa (job #2393676) | Cod sursa (job #2190744) | Cod sursa (job #2463746) | Cod sursa (job #2854769)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int cmmdc(int a, int b) {
if(a < b)
swap(a, b);
int r = a % b;
while (r != 0) {
a = b;
b = r;
r = a % b;
}
return b;
}
int main() {
ifstream fin ("fractii.in");
ofstream fout ("fractii.out");
int N;
fin >> N;
int *phi = new int[N];
phi[1] = 0;
for (int i = 2; i <= N; i++)
phi[i] = i;
for (int i = 2; i <= N; i++) {
if (phi[i] == i) {
for (int j = i; j <= N; j += i)
phi[j] = phi[j] / i * (i - 1);
}
}
unsigned long long int nrfrac = 0;
for (int i = 1; i <= N; i++)
nrfrac += phi[i];
fout << nrfrac;
delete[] phi;
return 0;
}