Cod sursa(job #1268649)
| Utilizator | Data | 21 noiembrie 2014 11:10:15 | |
|---|---|---|---|
| Problema | Factorial | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <fstream>
#include <algorithm>
#include <queue>
#include <math.h>
using namespace std;
queue <int> q;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long nr[13];
int main()
{
int p;
fin >> p;
nr[1] = 1;
for (int i = 2; i <= 12; i++)
{
nr[i] = nr[i - 1] * 5 + 1;
}
int j = 12;
while (p > 0)
{
while (nr[j] > p)
{
j--;
}
p -= nr[j];
q.push(j);
}
int sol=0;
while (!q.empty())
{
sol += pow(5, q.front());
q.pop();
}
fout << sol;
}