Cod sursa(job #248930)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 27 ianuarie 2009 09:24:25
Problema GFact Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
int pow(int n,int p)
{
	int s=1;
	while(p)   
    {   
        if (p%2)   
            s=s*n;   
        n=n*n;   
        p/=2;   
    }   
	return s;
}
int factorial(int p)
{
	int i,s=1;
	for (i=1; i<=p; i++)
		s*=i;
	return s;
}
int cbin(int p)
{
	int st=1, dr=2*p,i,m;
	while (st!=dr)
	{
		m=st+dr/2;
		if (factorial(m)%p==0)
			if (factorial(m-1)%p!=0)
				return m;
			else
				
				dr=m;
		else
			if (factorial(m+1)%p==0)
				return m+1;
			else
				st=m+1;
	}
	return st;
}
int main()
{
	freopen("gfact.in","r",stdin);
	freopen("gfact.out","w",stdout);
	int p,q,i,a;
	scanf("%d%d",&p,&q);
	printf("%d",cbin(p));
	return 0;
}