Salut, am si eu o problema la acest program: Imi da TLE

Aveti aici ceea ce am facut (50 de puncte, la restul am TLE) :
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int n, fact, aux, sw,k;
int main()
{
fin>>n;
if(n==0) k=1;
while(n>0)
{
sw=0;
fact=fact+5;
aux=fact;
while(aux%5==0)
{aux=aux/5; sw++;}
n=n-sw;
}
if(n==0&&k==0)fout<<fact;
else if(k==1) fout<<"1";
else fout<<"-1";
return 0;
}
Imi puteti da idei pentru optimizarea programului

, ma chinui de ceva timp... Mersi
