Cod sursa(job #59497)

Utilizator FlorianFlorian Marcu Florian Data 9 mai 2007 16:04:19
Problema GFact Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<stdio.h>
int main()
{
long long unsigned i,m,p,q,a,sol,j,nr,r,k=2,x,max=0;
FILE*f=fopen("gfact.in","r");
FILE*g=fopen("gfact.out","w");
fscanf(f,"%llu %llu",&p,&q);

while(p!=1)
	{
	r=0;
	while(p%k==0) {r++; p/=k;}
	r*=q;
	i=k; j=r*q*k;
	while(i<=j)
		{
		m=(i+j)/2;
		nr=0;
		x=k;
		while(m/x!=0) {nr+=m/x; x*=k;}
		if (nr==r)
			{
			while(m%k!=0) m--;
			if (max<m) max=m;
			break;}
		else if (nr>r) j=m-k;
		else i=m+k;
		}
	k++;
	}
fprintf(g,"%llu",max);
fclose(f);
fclose(g);
return 0;}