Cod sursa(job #1736094)

Utilizator tavy14tIlie Octavian tavy14t Data 1 august 2016 00:21:41
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;

ifstream fin("fractii.in");
ofstream fout("fractii.out");
float n, euler[1000000];
bool prime[1000000];

bool isPrime(int nr)
{
	if (nr <= 3)
		return nr > 1;
	if (nr % 2 == 0 || nr % 3 == 0)
		return false;
	for (int div = 5; div <= sqrt(nr); div += 6)
		if (nr % div == 0 || nr % (div + 2) == 0)
			return false;
	return true;
}


int main()
{
	fin >> n;
	int sum = 1; // raportul 1/1

	for (int i = 2; i <= n; i++)
		prime[i] = isPrime(i);

	for (int i = 2; i <= n; i++)
	{
		euler[i] = i;
		for (int j = 2; j <= i; j++)
			if (i % j == 0 && prime[j])
				euler[i] *= (1 - 1.0 / j);

		cout << i << " -> " << euler[i] << endl;
		sum += 2 * euler[i];
	}
	fout << sum;
}