A couple of useful python scripts I made from copying the explanations on wikipedia:
Extended Euclidean algorithm – Used in RSA for determining the public key, once the private is chosen (see wikipage)
Pollard’s rho algorithm – One method for factorizing (see wikipage), try creating a semi prime with 20 digits then one with 60 digits. Time how long it takes for each 😉
Helpful link with some prime numbers for testing