Cod sursa(job #353)

Utilizator ZweisteinAdrian VELICU Zweistein Data 11 decembrie 2006 08:11:06
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <stdio.h>
int main (void) {
        FILE * fi = fopen("fact.in","rt");
        FILE * fo = fopen("fact.out","wt");
        long long muj5[100],put5[100];
        muj5[0]=0;
        put5[0]=1;
        long long i;
        for (i=1; i<=23; i++) {
                muj5[i]=muj5[i-1]*5+1;
                put5[i]=put5[i-1]*5;
        };
        long long n,numar,ncur;
        fscanf(fi,"%lld",&n);
        numar=0; ncur=n;
        char invalid=0;
        for (i=22; i>=1; i--) {
                if ((put5[i]*(ncur/muj5[i]))==put5[i+1]) {
                        invalid=1;
                };
                numar+=put5[i]*(ncur/muj5[i]);
                ncur%=muj5[i];
        };
        if (n==0) { invalid=0; numar=1; };
        if (!invalid) {
                fprintf(fo,"%lld\n",numar);
        } else {
                fprintf(fo,"-1\n");
        };
        fclose(fi);fclose(fo);
        return 0;
};