Cod sursa(job #1309437)

Utilizator bogdanboboc97Bogdan Boboc bogdanboboc97 Data 5 ianuarie 2015 19:07:13
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int p,n;
int zeros(int x)
{
	int d=0,c=0;
	for(int i=2;i<=x;i=i*1LL*2)d+=(x/i);
	for(int i=5;i<=x;i=i*1LL*5)c+=(x/i);
	return min(d,c);
}
int main() {
	in>>p;
	if(p==0){
        out<<1;
        return 0;
	}
	int left=1,right=numeric_limits<int>::max()-1;
	while(right>left)
	{
		int mid=(right+left)/2;
		int t=zeros(mid);
		if(p<t)right=mid-1;
		if(p>t)left=mid+1;
		if(t==p)
		{
		    for(mid--;zeros(mid)==p;mid--);
			out<<mid+1;
			return 0;
		}
	}
	out<<-1;
	return 0;
}