Pagini recente » Cod sursa (job #985727) | Cod sursa (job #3232433) | Cod sursa (job #2965307) | Cod sursa (job #2743686) | Cod sursa (job #778641)
Cod sursa(job #778641)
#include<fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long p, m[10][3];
long long solve ( long long target , int i, long long res) {
if(target == 0)
return res;
else if (target >= m[i][0])
{ long long c = target/m[i][0];
res += c * m[i][1]; return solve(target - c * m[i][0],i-1,res);}
else if (i == 0 || target == m[i][0]-1)
return -1;
else return solve(target,i-1,res);
}
int main(){
in>>p;
m[0][0] = 0; m[0][1] = 1;
for(int i = 1; i <= 8; i++){
m[i][0] = m[i-1][0] * 5 + 1;
m[i][1] = m[i-1][1] * 5;
}
if(p==0)
out<<"1";
else
out<<solve(p,8,0);
in.close();
out.close();
return 0;
}