Discussion About A Factorial Problem

This is Discussion thread about A Factorial Problem

Hi I am trying to solve this problem https://hack.codingblocks.com/app/dcb/897

However i am getting a Time limit exceed problem , probably because of large factorials, please check my code below and let me know how can i improve. Thans

#include<bits/stdc++.h>
using namespace std;

long long int fact(long long int data)
{ long long int ans=1;
	while(data>0)
	{ 
		ans=ans*data;
		--data;
	}
	return ans;
}

int main()
{

int turns;
cin>>turns;
while(turns>0)
{
long long int n,k,ans;
	//long long int k;
cin>>n>>k;
//long long int eq= fact(n)%pow(k,x);
long long int count=0;
//cout<<fact(k);

for (long long int x = n/2; x <=n; ++x)
{	long long int power=pow(k,x);
	ans=x;
	if((long long int)fact(n)% (power) ==0)
	{
		++count;
	} //cout<<fact(n)% (power)<<" "<<x<<endl;
	if(count>0)
	{long long int power=pow(k,x+1);
		if(fact(n)%(power) !=0)
		{break;
		}
	}
}cout<<ans<<endl;

--turns;
}
	return 0;
}