Cod sursa(job #1693530)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 23 aprilie 2016 12:46:21
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#include <bitset>
#include <cmath>

using namespace std;

ifstream in("fact.in");
ofstream out("fact.out");

unsigned long long pw[1000]={},n,S=0;
bool prop=true,imp=false;
bool isap(int nr,int max)
{
	for(int a=1;a<=max;a++)
		if(nr==5*pw[a])
			return true;
	return false;
}
int main()
{
	in>>n;
	pw[1]=1;
	int i=1;
	while(pw[i]<n)
	{
		i++;
		pw[i]=pw[i-1]*5+1;
	}
	if(pw[i]!=n)
		i--;
	int k=n,j=i;
	while(k>0)
	{
		if(isap(k,i))
		{
			out<<-1;
			imp=true;
			break;
		}
		if(pw[j]<=k)
		{
			k-=pw[j];
		}
		else
			j--;
	}
	if(n==0)
		prop=false;
	while(n>0)
	{
		if(pw[i]<=n)
		{
			n-=pw[i];
			S+=pow(5,i+0.0f);
		}
		else
			i--;
	}
	if(prop&&!imp)
	out<<S;
	else if(!imp)
		out<<1;
	return 0;
}