Cod sursa(job #3367020)

Utilizator Barbu_DariusBarbu Darius Barbu_Darius Data 5 octombrie 2026 18:37:06
Problema Factorial Scor 0
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <stdio.h>

int main() {
    FILE *fin, *fout;
    int p, stg, drg, sol, mij, count, temp;
    int final_count, temp_sol, ans;
    
    fin = fopen("fact1.in", "r");
    
    fscanf(fin, "%d", &p);
    
    fclose(fin);
    fout = fopen("fact1.out", "w");
    
    if (p == 0) {
        fprintf(fout, "1\n");
    } else {
        stg = 1;
        drg = 5 * p;
        sol = stg - 1;
        
        while (stg <= drg) {
            mij = (stg + drg) / 2;
            count = 0;
            temp = mij;
            while (temp > 0) {
                count += temp / 5;
                temp /= 5;
            }
            if (count < p) {   
                sol = mij;          
                stg = mij + 1;       
            } else {
                drg = mij - 1;       
            }
        }
        
        ans = sol + 1;
        
        final_count = 0;
        temp_sol = ans;
        while (temp_sol > 0) {
            final_count += temp_sol / 5;
            temp_sol /= 5;
        }
        
        if (final_count == p) {
            fprintf(fout, "%d\n", ans);
        } else {
            fprintf(fout, "-1\n");
        }
    }
    fclose(fout);
    return 0;
}