Pagini recente » Cod sursa (job #2591990) | Cod sursa (job #1398252) | Cod sursa (job #2924386) | Cod sursa (job #1914595) | Cod sursa (job #2745134)
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;
string NumeFisier = "fractii";
ifstream fin(NumeFisier + ".in");
ofstream fout(NumeFisier + ".out");
typedef unsigned long long int ull;
const int len = 10e6;
int totien[len + 1];
void TOTIEN(int n)
{
for (int i = 1; i <= n; i++)
totien[i] = i;
for (int i = 2; i <= n; i++)
{
if (totien[i] == i)
{
totien[i]--;
for (int j = 2; j * i <= n; j++)
totien[i * j] = totien[i * j] / i * (i - 1);
}
}
}
int main()
{
int n;
fin >> n;
TOTIEN(n);
long long nrFractii = 1;
for (int i = 2; i <= n; i++)
nrFractii += 2 * totien[i];
fout << nrFractii;
}