Cod sursa(job #1928933)
Utilizator | Data | 16 martie 2017 21:43:58 | |
---|---|---|---|
Problema | Factorial | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
ifstream f ("fact.in");
ofstream g ("fact.out");
int m,p,logaritm;
void zero(int);
int main ()
{
f>>p;
logaritm=log10(p)/log10(5); m=logaritm*20;
if (logaritm==0) {logaritm=1;m=5;}
zero (p*5);
return 0;
}
void zero(int p1)
{ int mem,k=0,suma=0;mem=p1;
do
{ k=0;suma=0;
do
{
p1=p1/5; suma+=p1; k++;
} while (k-1!=logaritm);
if (suma>p) {mem-=m;p1=mem;}
if (suma<p) {mem+=5;p1=mem;}
}
while (suma!=p);
g<<mem;
}