Pagini recente » Cod sursa (job #1868848) | Cod sursa (job #235786) | Cod sursa (job #1936753) | Cod sursa (job #829618) | Cod sursa (job #1693530)
#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;
}