Cod sursa(job #324249)

Utilizator BrEacKRazvan Aurariu BrEacK Data 15 iunie 2009 11:14:51
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.25 kb
#include<iostream>
using namespace std;

int main()
{
    int n;
    int z[20];
    z[0] = 40000010;
    z[1] = 80000015;
    z[2] = 120000010;
    z[3] = 160000015;
    z[4] = 200000010;
    z[5] = 240000020;
    z[6] = 280000015;
    z[7] = 320000015;
    z[8] = 360000015;
    z[9] = 400000015;
    int v[20];
    v[0] = 10000000;
    v[1] = 20000000;
    v[2] = 30000000;
    v[3] = 40000000;
    v[4] = 50000000;
    v[5] = 60000000;
    v[6] = 70000000;
    v[7] = 80000000;
    v[8] = 90000000;
    v[9] = 100000000;
    FILE *in = fopen("fact.in", "r");
    FILE *out = fopen("fact.out", "w");
    fscanf(in,"%d",&n);
    unsigned int i =0;
    int k = 9;
    unsigned int nn =n;
    while((v[k] > n) && (k >= 0)){
        k--;
    }
    if(n == 0) {
        fprintf(out,"1");
    } else {
        i =1;
        if(k >=0) {
            i += z[k]/5;
            n -= v[k];
        }
        for(;n > 0;i++){
            n--;
            unsigned int ii = i;
            while(!(ii % 5)){
                n--;
                ii /= 5;
            }
        }
        if(n>=0)
            fprintf(out,"%d",(i-1)*5);
        else
            fprintf(out,"-1");
    }
    fclose(in);
    fclose(out);
    return 0;
}