You may rely on the following minimal ranges:
-32,767 to 32,767 unsigned short int and int: 0 to 65,535 long int: 0 to 65,535
unsigned long int: 0 to 4,294,967,295 -2,147,483,647 to 2,147,483,647
This means that long int cannot be used to hold any ten-digit value.
However, in C99 and C++11, a bigger type long long int was added (this type is also often supported as an extension by compilers built for older standards that did not include it).
If your compiler supports it, the minimal range for this type is:
long long int: -9,223,372,036,854,775,807 to 9,223,372,036,854,775,807 unsigned long long int: 0 to 18,446,744,073,709,551,615 long long int: 0 to 18,446,744,073,709,551,615
So that kind will suffice (again, assuming you have it).