Task 02: Simple Programs¶
a) Sieve of Eratosthenes¶
This is a famous algorithm to find prime numbers that was already known in in the 3rd century BCE.
Here is how it works:
- You start with an empty list of already known primes.
- Starting with the number 2 and then for all following numbers:
- Check if the current number can be divided by any of the known primes without remainder
- If this is the case, the current number can not be prime and you continue with the next number.
- If all divisions with a preceding prime leave a remainder, the current number is prime as well and is added to the list of known primes.
Use this algorithm to find the 100th prime number.
Hint: Python’s break and continue statements can be of great help in this task.
b) A Random DNA Sequence¶
Apologies to all biologists for the extreme simplifications of how DNA works.
Creating a Sequence¶
Generate a random DNA-like sequence made up of the symbols A
, C
, G
, T
. The sequence should be 10.000 (ten thousand) characters long.
Hint: Check the random
module from the Python standard library for a useful function to help you.
Extracting Triplets¶
Split up the sequence into triplets (i.e. sequences with three characters) store all those triplets in a list. If some characters get left over, they can be discarded.
Finding the Good Parts¶
Go through the list of triplets. If you encounter the triplet AAA
all following triplets go into a separate list (let’s say they form the basis for valid genes) until you either encounter AAA
again, starting a new list or until you reach the triplet TTT
. If the list of triplets ends before a gene-list is completed, that gene is discarded.
No gene-list should contain the AAA
or TTT
triplets.
Print the amount of found gene-lists, the lengths of each and the total amount of triplets in all genes.