Pagini recente » Cod sursa (job #973990) | Cod sursa (job #2824302) | Cod sursa (job #2040977) | Cod sursa (job #2481733) | Cod sursa (job #229645)
Cod sursa(job #229645)
/*Se da un numar intreg P. Sa se gaseasca cel mai mic numar natural strict pozitiv N
pentru care N! are exact P cifre de 0 la sfarsit.*/
/*Se da un numar intreg P. Sa se gaseasca cel mai mic numar natural strict pozitiv N
pentru care N! are exact P cifre de 0 la sfarsit.*/
#include<stdio.h>
#define N 400000025
int main()
{
unsigned int p,n,d,t,i,a=1;
FILE *f1,*f2;
f1=fopen("fact.in","r");
f2=fopen("fact.out","w");
fscanf(f1,"%d",&p);
i=0;
t=0;
if(p==0){
fprintf(f2,"%d",1);
return 0;
}
if(p<=25000000)
{
for(i=5;i<=100000090;i=i+5)
{
d=1;
n=i/5;
while(n%5==0)
{
d=d+1;
n=n/5;
}
t=t+d;
if(t>=p)
break;
}
}
else if(p>25000000 && p<=50000000)
{
t=25000000;
for(i=100000010;i<=200000100;i=i+5)
{
d=1;
n=i/5;
while(n%5==0)
{
d=d+1;
n=n/5;
}
t=t+d;
if(t>=p)
break;
}
}
else if(p>50000000 && p<=75000000)
{
t=50000000;
for(i=200000015;i<=400000135;i=i+5)
{
d=1;
n=i/5;
while(n%5==0)
{
d=d+1;
n=n/5;
}
t=t+d;
if(t>=p)
break;
}
}
else if(p>75000000 && p<=100000000)
{
t=75000000;
for(i=300000015;i<=400000135;i=i+5)
{
d=1;
n=i/5;
while(n%5==0)
{
d=d+1;
n=n/5;
}
t=t+d;
if(t>=p)
break;
}
}
if(t>p && d>1) fprintf(f2,"-1");
else if(t==p) fprintf(f2,"%d",i);
fclose(f1);
fclose(f2);
return 0;
}