Pagini recente » Sandbox | Diferente pentru runda/avram_iancu_1 intre reviziile 1 si 2 | Sandbox | Atasamentele paginii infinity-2022-6 | Cod sursa (job #1551142)
#include<cstdio>
using namespace std;
unsigned long long n,p;
unsigned long long zerouri(unsigned long long x)
{
unsigned long long s=0;
unsigned long long k=5;
while(k<=x)
{
unsigned long long a=x/k;
s+=a;
k*=5;
}
return s;
}
unsigned long long cautbin(unsigned long long val)
{
unsigned long long start=1;unsigned long long step=(1<<30);
for(;step;step>>=1)
{
unsigned long long index=start+step;
if(zerouri(index)<=val) start=index;
}return start;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld",&p);
unsigned long long val=cautbin(p-1)+5;
if(p==0) printf("1");
else printf("%lld",val-val%5);
}