Cod sursa(job #2450837)

Utilizator r00t_Roman Remus r00t_ Data 24 august 2019 17:53:37
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <cmath>
#include <math.h>
#include <queue>
#include <string>

using namespace std;

ifstream fin("fractii.in");
ofstream fout("fractii.out");

int phi[1000100];

long long getphi(int n)
{
	long long sum = 1;
	phi[1] = 1;
	for (int i = 2; i <= n; i++) {
		if (phi[i] == 0) {
			phi[i] = i - 1;
			for (int j = 2; i * j <= n; j++) {
				if (phi[j] == 0)
					continue;

				int q = j;
				int f = i - 1;
				while (q % i == 0) {
					f *= i;
					q /= i;
				}
				phi[i * j] = f * phi[q];
			}
		}
		sum += phi[i];
	}

	return sum;
}

int main()
{
	ios_base::sync_with_stdio(false);
	int n;
	fin >> n;
	fout << getphi(n) * 2 - 1;
}