Cod sursa(job #532918)
| Utilizator | Data | 12 februarie 2011 18:48:50 | |
|---|---|---|---|
| Problema | Factorial | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <iostream>
#include <fstream>
using namespace std;
int n,i,j,sol,p;
int main()
{
const int pcrit[14] = {1,6,31,156,781,3906,19531,97656,488281,2441406,12207031,61035156,305175781,1525878906};
ifstream in("fact.in");
in >> n;
if (((n+1) % 6)==0)
sol=-1;
else
{
p=1220703125;
i=13;
do
if (pcrit[i]>n)
{
i--;
p=p/5;
}
else
{
n=n-pcrit[i];
sol=sol+p;
}
while (n>0);
sol=sol*5;
}
ofstream out("fact.out");
out << sol;
out.close();
return 0;
}
