Pagini recente » Cod sursa (job #2947243) | Cod sursa (job #1973303) | Borderou de evaluare (job #565500) | Cod sursa (job #1516234) | Cod sursa (job #940278)
Cod sursa(job #940278)
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
unsigned pow(unsigned b);
int main()
{
unsigned p,i,s=0,ok=0;
unsigned v[100],cnt[100]={};
f>>p;
if(p==0) {g<<1; return 0;}
v[1]=1;
i=1;
while(p>=v[i])
{
i++;
v[i]=v[i-1]*5+1;
}
i--;
while(i&&p)
{
while(p>=v[i])
{ s+=pow(i); p-=v[i];cnt[i]++;}
i--;
}
for(i=1;i<=20;i++) if(!(cnt[i]%5)&&cnt[i]) ok=1;
if(ok) g<<-1;
else g<<s;
return 0;
}
unsigned pow(unsigned b)
{
unsigned s=1;
while(b)
{
s*=5;
b--;
}
return s;
}