Cod sursa(job #1594240)

Utilizator mateiivanMatei Ivan mateiivan Data 9 februarie 2016 12:19:04
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
using namespace std;
#include <iostream>
#include <stdio.h>
#include <fstream>
#include <algorithm>


int main(){

    long long zerouri[10001];
    long long nr[10001];
    int i,p,start, copie = 0, count = 0;

    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);

    cin >> p;
    for(i = 0;i <= 10000;i++){
        zerouri[i] = (i)*10000;
    }

    nr[0] = 0;
    for(i = 1;i <= 10000;i++){
        if(i%2 == 0)
            nr[i] = (i)*40000 + 5;
        else
            nr[i] = (i)*40000 + 10;
    }

    for(i = 10000;i >= 0;i--){
        if(zerouri[i] <= p){
            break;
        }
    }
    start = nr[i];
    count = zerouri[i];

    if(p == 0){
        cout<<1;
    }
    else if(p == count){
        cout<<start;
    }
    else{
        for(i = start+5;;i+=5){
            copie = i;
            while(copie%5 == 0){
                count++;
                copie /= 5;
            }

            if(count == p){
                cout<<i;
                break;
            }
            else if(count > p){
                cout<<-1;
                break;
            }
        }
    }

    return 0;
}