Cod sursa(job #469269)

Utilizator LP337Lazar Pavel LP337 Data 7 iulie 2010 11:39:46
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
/**
*
*	Author: Lazar Pavel
*
* 	Description: Se da un numar intreg P. Sa se gaseasca cel mai mic numar 
*	natural strict pozitiv N pentru care N! are exact P cifre de 0 la sfarsit.
*
**/	

#include <stdio.h>
#include <stdlib.h>

int main(){
	FILE 	*fi 	= fopen("fact.in","r");
	FILE 	*fo 	= fopen("fact.out","w");
	
	unsigned long int 	p;
	unsigned long int 	zeros 	= 0;
	unsigned long int 	fact	= 1;
	
	fscanf(fi,"%ld",&p);
	fclose(fi);
	
	if( p == 0 ){
		fprintf(fo,"%d",1);
	}else{		
		while( zeros != p || zeros < p ){
			fact++;
			if( fact % 100000 == 0 ){
				zeros = zeros + 5;
			}else if( fact % 10000 == 0 ){
				zeros = zeros + 4;
			}else if( fact % 1000 == 0 ){
				zeros = zeros + 3;
			}else if( fact % 100 == 0 ){
				zeros = zeros + 2;
			}else if( fact % 25 == 0 ){
				zeros = zeros + 2;
			}else if( fact % 10 == 0 ){
				zeros++;
			}else if( fact % 10 == 5 ){
				zeros++;
			}
		}
		if( zeros == p ){
			fprintf(fo,"%ld",fact);
		}else{
			fprintf(fo,"%d",-1);
		}
	}
	
	fclose(fo);
	return 0;
}