Write a program that implements LZW compression and public key encryption.
Your program should ask me whether I want to compress or decompress a file, or encrypt or decrypt a file.
If it is encrypting a file, it should ask whether I want to supply the public key or use yours. If it is decrypting a file, it should use the private key you generated when you generated your public key. The keys for this can be small.
How to calculate large powers:
c = (m^e) mod n
c = (a * b) mod n
c = ((a mod n) * (b mod n)) mod n
c = 1; e' = 0; while (e' < e) e'++; c = (m * c) mod n;