Pagini recente » Cod sursa (job #2816803) | Cod sursa (job #786827) | Cod sursa (job #2964644) | Cod sursa (job #2091508) | Cod sursa (job #2745129)
#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;
long totien[len + 1];
void TOTIEN()
{
for (int i = 1; i <= len; i++)
totien[i] = i;
for (int i = 2; i <= len; i++)
{
if (totien[i] == i)
{
totien[i]--;
for (int j = 2; j * i <= len; j++)
totien[i * j] = totien[i * j] / i * (i - 1);
}
}
}
int main()
{
TOTIEN();
int n;
fin >> n;
long long nrFractii = 1;
for (int i = 2; i <= n; i++)
nrFractii += 2 * totien[i];
fout << nrFractii;
}