Cod sursa(job #592807)

Utilizator kojocojocaru aurelian kojo Data 30 mai 2011 19:53:17
Problema Frac Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
ifstream f("frac.in");
ofstream g("frac.out");
long n,a[100],p;

void factori(long x)
{long w=x,k=1;
	if(x%2==0)
	{while(x%2==0)
	    x/=2;
    a[k]=2;k++;
	}
	
		 for(int i=3;i<(w/2);i+=2)
		 {if(x%i==0)
			{while(x%i==0)
			   x/=i;
			    a[k]=i;k++;
			}
		 }
}
long calcul(long x)
{int i;
long pp=x,ppp=1;
for(i=1;i<=100&&a[i];i++)
	{
     ppp*=a[i];
	 pp-=x/ppp;
	}
return pp;

}
long cautabin(long in,long sf)
{
long k=(in+sf)/2,t;
t=calcul(k);
if(t==p)
  return k;
if(t<p)
	in=k+1;
if(t>p)
sf=k-1;	
	  cautabin(in,sf);
if(in>sf)
return 0;

}
int main()

{

	f>>n>>p;
factori(n);
g<<cautabin(0,1000000000);
	
return 0;
}