Pagini recente » Cod sursa (job #3132238) | Cod sursa (job #600746) | Cod sursa (job #2507766) | Cod sursa (job #2713255) | Cod sursa (job #12463)
Cod sursa(job #12463)
#include <stdio.h>
#define MAX 400000015
inline int putere(int x)
{int i=2;
x=x/25;
while (x%5==0)
{
i++;
x/=5;
}
return i;
}
int main()
{FILE *pf;
pf=fopen("fact.in","r");
int p;
fscanf(pf,"%d",&p);
fclose(pf);
if (p==0) {
pf=fopen("fact.out","w");
fprintf(pf,"%d",1);
fclose(pf);
return 0;
}
int n;
if (p<=50000000)
{
int numar=0;
for (n=5;numar<p;n+=5)
if (n%25==0) numar+=putere(n);
else numar++;
n-=5;
pf=fopen("fact.out","w");
if (numar==p) fprintf(pf,"%d",n);
else fprintf(pf,"%d",-1);
fclose(pf);
}
else {int numar=100000000;
for (n=MAX;numar>p;n-=5)
if (n%25==0) numar-=putere(n);
else numar--;
pf=fopen("fact.out","w");
if (numar==p) fprintf(pf,"%d",n);
else fprintf(pf,"%d",-1);
fclose(pf);
}
return 0;
}