Cod sursa(job #443034)

Utilizator MurphYZoRMarius Eu de la 9B-re MurphYZoR Data 15 aprilie 2010 21:53:44
Problema Factorial Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<iostream.h>
#include<fstream.h>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long st,dr,n,p;
long nrz( long c )
{
    long p=0;
	while( c )
    {
            p += c/5;
            c /= 5;
    }
    return p;
}
// nrz este numarul de zerouri al lui c
// st , dr , sunt limitele cautarii
// p reprezinta numarul de intrare

int main()
{ long long c,nr;
    st=0;
dr=1000000000;
n=1;
f>>p;
if(p>0){
while(n){  c=(st+dr)/2;
              nr=nrz(c);
              if(nr==p&&st==dr) {n=st;break;}
              if(dr<st) {n=-1;break;}
              if(p>nr) st=c+1;
            else dr=c-1;                           
          }

if (n>=0) g<<n; else g<<-1;
}
else if (p==0)g<<0;else g<<-1;
return 0;
}