Nu aveti permisiuni pentru a descarca fisierul grader_verif.cpp
Cod sursa(job #585070)
| Utilizator | Data | 27 aprilie 2011 22:07:12 | |
|---|---|---|---|
| Problema | Factorial | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <fstream>
#include <iostream>
#define MAXV 0x3f3f
using namespace std;
int fives(int x)
{
int i,nr=0,aux;
if(x<5) return 0;
else
for(i=5;i<=x;i+=5)
{
aux=i;
while(aux%5==0)
{
nr++;
aux/=5;
}
}
return nr;
}
int main()
{
ifstream f("fact.in");
ofstream g("fact.out");
int p,n,start=0,end=MAXV,mid,x,i;
f>>p;
mid=(start+end)/2;
x=fives(mid);
while(x!=p && start!=end)
{
if(x<p)
{
start=mid+1;
mid=(start+end)/2;
x=fives(mid);
}
else if(x>p)
{
end=mid-1;
mid=(start+end)/2;
x=fives(mid);
}
}
for(i=mid;fives(i)==p;i--)
{
;
}
g<<i+1;
f.close();
g.close();
return 0;
}