If you compute
fibonacci(50), you get:
>>> fibonacci(50) 12586269025L
L at the end indicates that the result is a long integer, or type
long. In Python 3,
long is gone; all integers, even really big ones, are type
Values with type
int have a limited range; long integers can be arbitrarily big, but as they get bigger they consume more space and time.
The mathematical operators work on long integers, and the functions in the
math module, too, so in general any code that works with
int will also work with
Any time the result of a computation is too big to be represented with an integer, Python converts the result as a long integer:
>>> 1000 * 1000 1000000 >>> 100000 * 100000 10000000000L
In the first case the result has type
int; in the second case it is
Exponentiation of large integers is the basis of common algorithms for public-key encryption. Read the Wikipedia page on the RSA algorithm (http://en.Wikipedia.org/wiki/RSA_(algorithm)) and write functions to encode and decode messages.