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;