Cod sursa(job #342206)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 20 august 2009 21:00:37
Problema GFact Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <cstdio>

#define file_in "gfact.in"
#define file_out "gfact.out"

int p,q;

inline int power(int a, int b)
{
    long long x;
    if (b==1)
         return a;
    else
    if (b%2==0)
    {
        x=power(a,b/2);
        return (x*x);
    }
    else
    {
       x=power(a,b/2);
       return ((x*x)*a);
    }
}


inline int solveq()
{
   int i,nr;
   nr=1;
   i=1;
   while(nr%p!=0)
   {
	   i++;
	   nr*=i;
	   //i++;
   }

   return i;
}

inline int solve()
{
	long long rez=1;
	int nr=1;
	
	while(rez%p!=0)
	{
		nr++;
		rez*=nr;
	}
	
	return nr;
}

int main()
{
int i;
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);

	scanf("%ld %ld", &p,&q);

	if (q==1)
		printf("%lld", solve());
	else
	{
		p=power(p,q);
		printf("%ld", solve());
	}
	//}

	fclose(stdin);
	fclose(stdout);

	return 0;
}