Cod sursa(job #1663160)

Utilizator mihneacazCazacu Mihnea mihneacaz Data 25 martie 2016 16:16:00
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<cstdio>
using namespace std;
int legendre(int n)
{
	int s=0;
	long long num;
	num=5;
	while(num<=n)
	{
		s=s+n/num;
		num=num*5;
	}
	return s;
}
int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    int p,st,dr,med,last;
    scanf("%d",&p);
    st=1;
    dr=(1LL<<31)-1;
    while(st<=dr)
		{
			 med=dr-(dr-st)/2;
			 if(legendre(med)>=p)
			 {
			 	dr=med-1;
			 	last=med;
			 }
			 else
				st=med+1;
		}
		if(legendre(last)==p)
			printf("%d\n",last);
		else
			printf("-1\n");
    return 0;
}