Cod sursa(job #2580327)

Utilizator Th3R4nd0mEmanuel Strugaru Th3R4nd0m Data 13 martie 2020 14:59:09
Problema Fractii Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>
using namespace std;
int phi(int n)
{
	int i, j;
	long long unsigned sum = 0;
	double p[n+1]={0};
	for(i=2;i<=n;i++)
		p[i] = i; // we set them all to their index value 

	for(i=2;i<=n;i++)
	{
		if(p[i] == i) //if p[i] is prime
		{
			p[i]--; // daca numarul este prim, atunci toate numerele mai mici decat el vor fi prime cu el
			for(j=2*i;j<=n;j+=i)
			{
				p[j] *= (i-1);
				p[j] /= i; // toti multiplii lui i vor avea numarul de numere mai mici si prime cu el egale cu 
			}
		}
	}
	for (int i=2;i<=n;i++)
		sum += p[i];

	sum *= 2;
	sum++;
	return sum;
}
int main()
{
	ifstream in("fractii.in");
	ofstream out("fractii.out");

	int nr;
	in>>nr;
	out<<phi(nr);
	//cout<<get_nr(nr);
}