Exercise 1
----------
I have coded two seprate program to solve this problem.
The first one uses a brute force check of the input.
The second one is more elegant and compact and uses
the python facilities to deal with errors

To run the first program
linux> ./square_integer.py

To run the second program
linux> ./better_square_integer.py

Exercise 2
----------
To run the program that solves this problem
linux> ./countWordsAndCharacters.py

Exercise 3
----------
To run the program that solves this problem
linux> ./removeDuplicateWords.py

Exercise 4
----------
To run the program that solves this problem
linux> ./outputNumbersWithEvenDigits.py

Exercise 5
----------
To run the program that solves this problem
linux> ./runShellCommand.py
Note: this program does it twice.
First with the os module and then with the subprocess module

Exercise 6
----------
To run the program that solves this problem
linux> ./factoring_fast.py
