Cod sursa(job #687750)

Utilizator gabrielvGabriel Vanca gabrielv Data 22 februarie 2012 18:56:22
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<cstdio>
using namespace std;
#define MAX 100000
int v[MAX];
int zeros(int m)
{
	int s=0,k=5;
	while(m/k)
	{
		s=s+m/k;
		k=k*5;
	}
	return s;
}
int main()
{
	int p,left,right,m,zero;
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	scanf("%d",&p);
	left=1;
	right=p*5;
	while(left<=right)
	{
		m=(left+right)/2;
		zero=zeros(m);
		if(zero==p)
		{
			printf("%d",m-m%5);
			return 0;
		}
		else
			if(zero<p)
				left=m+1;
			else
				right=m-1;
	}
	if(p==0)
            printf("%d\n",1);
        else
            printf("%d\n",-1);
	return 0;
}