Cod sursa(job #1663162)

Utilizator sadpolkgigi becali smecher sadpolk Data 25 martie 2016 16:18:09
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <cstdio>

using namespace std;
int legendre(int n)
{
	int s=0;
	long long numitor;
	numitor=5;
	while(numitor<=n)
	{
		s=s+n/numitor;
		numitor*=5;
	}
	return s;
}
int main()
{
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	int p,dr,st,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");
    return 0;
}