I am computing factorials as part of teaching myself C++. I am looking for feedback on efficiency, style and any bad practices I may be using.#include <iostream>#include <climits>using namespace std;int main(){    unsigned int number{ 0 };    unsigned long long factorial{ 0 };    cout << The factorial of a non-negative integer n is denoted as n! (n factorial)...\n <<        Example: 5! = 5x4x3x2x1 = 120\n\n;    cout << Enter a non-negative integer and we will compute the factorial: ;    cin >> number;    while (cin.rdstate() || number < 0 || number > LLONG_MAX)    {        cin.clear();        cin.ignore(LLONG_MAX, '\n');//flush input buffer        cout << The data entered was invalid. Try again?\n\n << endl;        cout << Enter a non-negative integer and we will compute the factorial: ;        cin >> number;    }    if (number == 0 || number == 1)//since 0! and 1! = 1 there is no need to do a calculation    {        cout << ! << number <<  = 1 << endl;    }    else    {        factorial = number * (number - 1);        for (size_t i = 2; i < number; ++i)        {            factorial *= (number - i);        }        cout << number << ! =  << factorial << endl;    }}
Computing factorials
c++;algorithm;c++11;integer