Cod sursa(job #1802629)

Utilizator Cristi123fsdkfskjkjsksjk Cristi123 Data 10 noiembrie 2016 15:34:28
Problema Frac Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>

#include <fstream> 

using namespace std;

ifstream f ("frac.in"); 

ofstream g ("frac.out");



unsigned long N , P , phi , copie , a , rest , cat , pozitie , interval , nr , nr_phi , x , y , r;



int main()

{
	f >> N >> P; 

	phi = N; copie = N;

	while (copie != 1) { a = 2;
	
	while (copie % a != 0) a++; 
	
	phi = (phi / a)*(a - 1); 
	
	while (copie % a == 0) copie = copie / a;  
	
	}

	 
    rest = P % phi; cat = P / phi; 

	if (rest == 0)  { interval = cat; pozitie = phi; } 

	else { interval = cat + 1 ; pozitie = rest; } 

	nr_phi = 1; nr = 2; 

	while (nr_phi < pozitie)  {
		x = nr; y = N;

		r = y % x;

		while (r != 0)    { y = x; x = r; r = y % x; }

		if (x == 1) nr_phi++;

		nr++;
	}

	nr--; 

	g << nr + (interval - 1) * N; 

	

	return 0; 




}