Cod sursa(job #1693488)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 23 aprilie 2016 11:16:26
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 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;

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--;
	if(n==0)
		prop=false;
	int j=i;
	int k=n;
	if(k!=0)
		while(j>0)
		{
			if((k+1)%pw[j]==0)
			{
				out<<-1;
				imp=true;
				break;
			}
			else
				k%=pw[j];
			j--;
		}
	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;
}