Cod sursa(job #1736097)

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

ifstream fin("fractii.in");
ofstream fout("fractii.out");
int n, euler[1000000];
bitset<1000000> neprime;

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++)
	{
		if(neprime[i] == 0)
		for (int j = 2; i*j <= n; j++)
			neprime[i*j] = 1;
	}

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

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