#Exercise 1
"""
N=1000
#Einfaches Verfahren
prime=[2]
for zahl in range(3,N):
	isprime=True
	for primzahl in prime:
		if zahl%primzahl==0:
			isprime=False
			break
	if isprime:
		prime.append(zahl)
print "Standard Verfahren: ", prime

N=1000000
#Exercise 2 Sieb von Eratostenes
prime=[]
isprime=[]
for zahl in range(0,N):
	isprime.append(True)

for zahl in range(2,N):
	if isprime[zahl]==True:
		for multiple in range(zahl*zahl,N,zahl):
			isprime[multiple]=False
		prime.append(zahl)
print "Sieb von Eratostenes", prime
"""
#Exercise 3 (Advanced)
def find_method(var,methodname):
	methods=dir(var)
	possible_hits=[]
	k=0
	for m in methods:
		k+=1
		try:
			docstring=var.__getattribute__(m).__doc__
			if methodname.lower() in docstring.lower():
				possible_hits.append(m)
		except:
			pass
	user=raw_input("%s possible methods found. Show help? [y/n] "%(len(possible_hits)))
	if user in ["y","Y","yes","Yes","j","J","Ja"]:
		for m in possible_hits:
			k=help(var.__getattribute__(m))
	else:
		exit()
from numpy import arange
find_method("","find")
