Cod sursa(job #1366911)
| Utilizator | Data | 1 martie 2015 14:39:00 | |
|---|---|---|---|
| Problema | Factorial | Scor | 75 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.83 kb |
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long p,n,pas,elem,k,j;
int main()
{fin>>p;
pas=1;
elem=5;
while(k==0)
{if(p<=pas*5+1) k=1;
else {pas=pas*5+1;elem=elem*5;}
}
while(p>0)
{for(j=1;j<=5;j++)
{
if(((j-1)*pas<=p)&&(p<=j*pas)){if(pas>=5){n=n+elem*(j-1);p=p-pas*(j-1);pas=(pas-1)/5;elem=elem/5;j=0;if(p==0)break;}
else {n=n+elem*j;
p=p-pas*j;
pas=(pas-1)/5;
elem=elem/5;
if(p<=0) break;}
}
}
}
fout<<n;
}
