Cod sursa(job #906634)

Utilizator Andrei1101Raduta Andrei Andrei1101 Data 6 martie 2013 23:00:53
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
    FILE*f=fopen("fact.in","r");
    FILE*g=fopen("fact.out","w");
    int p;
    fscanf(f,"%d",&p);

    if(p==0)
    {
        fprintf(g,"%d",1);
    }
    else
    {
        int start = p;
        int stop = p*5;
        int sw = 0;

        while(start <= stop) {
            int mijloc = (stop+start)/2;
            int zerouri = 0;
            int i = 5;
            while(i <= mijloc) {
                zerouri = mijloc/i+1;
                i =i*5;
            }
            if(zerouri > p) {
                stop = mijloc-1;
            } else if(zerouri == p) {
               fprintf(g,"%d",mijloc-mijloc%5);
                sw = 1;
                break;
            } else {
                start = mijloc+1;
            }
        }
        if(sw == 0) {
           fprintf(g,"%d",-1);
        }
    }
    fclose(f);
    fclose(g);
    return 0;
}