Cod sursa(job #221380)

Utilizator silvia_the_bestSilvia Pripoae silvia_the_best Data 16 noiembrie 2008 12:39:47
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>
#define FIN "fact.in"
#define FOUT "fact.out"
#define N 35
#define MAX 100000000
int v[N][2],p,sum;
void read(){
	freopen(FIN,"r",stdin);
	scanf("%d",&p);
}
int calc(){
	int i=1,j=5,k=1;
	while (v[i-1][0]<MAX){
		v[i][0]=k;
		v[i][1]=j;
		++i;
		j*=5;
		k=k*5+1;
	}
	return i-1;
}
int solve(int p){
	int r=p,i,sum=0;
	if (p==0)
		return 1;
	i=calc();
	while (r){
		while (v[i][0]>r)
			--i;
		sum+=(r/v[i][0])*v[i][1];	
		r=r%v[i][0];
	}
	return sum;
}
void write(){
	freopen(FOUT,"w",stdout);
	int r1,r2;
	r1=solve(p);
	r2=solve(p+1);
	if(r1==r2)
		sum=-1;
	else
		sum=r1;
	printf("%d\n",sum);
}
int main(){
	read();
	write();
}