Cod sursa(job #498352)

Utilizator kojocojocaru aurelian kojo Data 4 noiembrie 2010 21:58:57
Problema Frac Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream.h>
#include<math.h>
ifstream f("frac.in");
ofstream g("frac.out");
unsigned long n,p,x;
#define max 50
int a[max],z;
unsigned long in=1,sf=120000000, mij,t;

void descompune(unsigned long q)
{int i;
for(i=2;i<=sqrt(q);i++)
   if(q%i==0){a[z]=i;z++;
	      while(q%i==0)
			q/=i;	
		}

}

unsigned long calcul(unsigned long x)
{int i;
unsigned long k=1,h;
for(i=0;i<=z;i++)
   {k*=a[i];x-=h/k;}
return x;}
void binara()
{
 mij=(in+sf)/2;
t=calcul(mij);
 if(t>p)
      {sf=mij;binara();}
 else if(t<p)
        {in=mij;binara();}
       else g<<mij;
}
int main()
{
f>>n>>p;
descompune(n);
binara();
return 0;
}