Pagini recente » Cod sursa (job #2402529) | Cod sursa (job #3164931) | Cod sursa (job #1493685) | Cod sursa (job #3268565) | Cod sursa (job #2854781)
#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 + 1];
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] /= i;
phi[j] *= (i - 1);
}
}
}
unsigned long long int nrfrac = 0;
for (int i = 1; i <= N; i++)
nrfrac += phi[i];
nrfrac *= 2;
nrfrac++;
fout << nrfrac;
delete[] phi;
return 0;
}