Pagini recente » Cod sursa (job #2166687) | Cod sursa (job #1145147) | Cod sursa (job #212460) | Cod sursa (job #2141728) | Cod sursa (job #606942)
Cod sursa(job #606942)
#include <stdio.h>
int Nr5(int n) // puterea lui 5 din descompunerea lui n!
{
int rez=0;
while((n=n/5)!=0)
rez +=n;
return rez;
}
int main(int argc, char* argv[])
{
FILE *fpr,*fpw;
int P,N;
const int nmax = 400000015;
bool found=false;
int a=1,b=nmax;
int c = (a+b)/2;
int val = Nr5(c);
int t1 = Nr5(a),t2 = Nr5(b);
fpr = fopen("fact.in","r");
fpw = fopen("fact.out","w");
fscanf(fpr,"%d",&P);
while(t1<= P && P<=t2){
c = (a+b)/2;
val = Nr5(c);
if(P<val){
b = c;
t2 = val;
}
else if(P>val){
a = c+1;
t1 = Nr5(a);
}
else{
found = true;
break;
}
}
if(found){
if(c<5)
fprintf(fpw,"1");
else
fprintf(fpw,"%d",c-c%5);
}
else
fprintf(fpw,"-1");
fclose(fpr);
fclose(fpw);
return 0;
}