Cod sursa(job #1562343)

Utilizator mateibanuBanu Matei Costin mateibanu Data 4 ianuarie 2016 23:27:00
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <stdio.h>

using namespace std;

FILE*f=fopen("fact.in","r");
FILE*g=fopen("fact.out","w");

int main()
{
    int p,n,nr=0,z,m,dr,st;
    fscanf(f,"%d",&p);
    dr=p*5;
    nr=0;
    z=5;
    st=0;
    while (st<=dr)
    {
        m=(st+dr)/2;
        if (m%5!=0) m=m-2;
        nr=0;
        z=5;
        while (z<=m)
        {
            nr=nr+m/z;
            z=z*5;
        }
        if (p==nr) break;
        else if (p>nr) st=m+5;
        else dr=m-5;
    }
    if (p==0) m=1;
    if (p==nr) fprintf(g,"%d",m);
    else fprintf(g,"-1");
    fclose(g);
    return 0;
}