Hello engineers

I have a fundamental question and I think it somewhere on the c++ book but I could not find it. Any help would be very appreciates.

Question: I am doing OK for the n! for integer type from 1 to 16. But I have problem when i start to enter 17. What is the problem here. Is this because the integer type?

Here is the program

#include <iostream.h>

int main()

{
int in, out;
out = 1;
cout << "Enter input number \n\n";
cin >> in;

for (int x = 1; x <= in ; x ++)
out = x * out;
cout << "Here are the result" <<out<<endl;

return 0;
}