Cod sursa(job #706142)

Utilizator vandrei95Zamfir Vlad vandrei95 Data 5 martie 2012 17:45:39
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<iostream>
#include<fstream>
#include <stdio.h>
#include <math.h>
using namespace std;

int main(void)
{
	fstream f,g;
	f.open("fact.in",ios::in);
	g.open("fact.out",ios::out);
	int n=0,i,pas=0,n2,adevarat=0;
	int putere5[15]={0},zero[15]={0},j;
	putere5[1]=5;
	for(i=2;i<=15;i++)
		putere5[i]=putere5[i-1]*5;
	zero[1]=1;
	for(i=2;i<=15;i++)
		zero[i]=putere5[i-1]+zero[i-1];

	long long p=1;
	f>>p;
	n2=p;
	if(p==0)
		g<<1;
	else
	{
		for(i=15;i>=1;i--)
			if(p>=zero[i])
			{
				n+=p/zero[i]*putere5[i];
				p=p%zero[i];
			}
		for(i=1;i<=15;i++)
			if(n==putere5[i])
			{
				adevarat=1;
				break;
			}
		if(adevarat)
			if(zero[i]==n2)
				g<<n;
			else
				g<<-1;
		else
			g<<n;
		
		
	}

}