Pagini recente » Cod sursa (job #413621) | Cod sursa (job #2126543) | Cod sursa (job #204490) | Cod sursa (job #113764) | Cod sursa (job #1693491)
#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>1)
{
if((k+1)%pw[j]==0)
{
out<<-1;
imp=true;
break;
}
else
k%=pw[j];
j--;
}
if(k==4)
{
out<<-1;
imp=true;
}
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;
}