Cod sursa(job #864042)

Utilizator alexandrabadutBadut Alexandra alexandrabadut Data 24 ianuarie 2013 16:59:44
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb

#include <fstream>
using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
int P,i,j,m,p,u,s,d,v[15];
int main () {
    fin>>P;
    v[0]=1;
    for (i=5;i<=P*5;i=i*5) 
        v[++d]=i;
    v[++d]=2000000000;
    p=1;
    u=P*5;
    while (p<=u) {
        m=(p+u)/2;
        s=0;
        for (j=1;v[j]<=m;j++) 
            s=s+m/v[j];
        if (s>=P)
            u=m-1;
        else
            p=m+1;
    }
    s=0;
    for (j=1;v[j]<=p;j++) 
        s=s+p/v[j];
    if (s==P)
        fout<<p<<"\n";
    else
        if (P==0) 
            fout<<v[0];
        else
            fout<<-1<<"\n";
    return 0;
}