Small factorials

problem code : FCTRL2
https://www.codechef.com/problems/FCTRL2
#include
using namespace std;

int main()
{
int t,m,num1,num2,rev,i,j,x;
unsigned long long int temp;
cin>>t;
while(t–)
{
int a[200];
cin>>num1;
num2 = num1;
m = 0;
while(num1 != 0)
{
rev = num1 % 10;
num1 = num1 /10;
a[m] = rev;
m++;
}
j = m;
temp = 0;
for(i=1;i<=num2;i++)
{
for(m = 0;m<j;m++)
{
x = a[m] * i + temp;
a[i] = x % 10;
temp = x / 10;
m++;
}
while(temp != 0)
{
x = temp % 10;
j++;
a[j] = x;
}
}
for(i=j;i>-1;i–)
{
cout<<a[i];
}
cout<<endl;
}
return 0;
}

// can anyone please help??

In c++ you can’t store a value beyond 20! in any primitive datatype. For this question you can either use Java’s BigInteger or if you want to use C++ you can use boost multi precision library

#include <boost/multiprecision/cpp_int.hpp>

1 Like

thanks i will look into it.