diff --git a/Chapter_4/ex1.py b/Chapter_4/ex1.py new file mode 100644 index 0000000000000000000000000000000000000000..8b5ac2148a1cdccf21ebde115ef177637dbf26a8 --- /dev/null +++ b/Chapter_4/ex1.py @@ -0,0 +1,35 @@ +import math + + +def get_fibonnacci(n_numbers): + fibo = [1,1] + if n_numbers <= 2: + return fibo[:n_numbers] + for i in range(2,n_numbers): + fibo.append(fibo[-1] + fibo[-2]) + return fibo + +def is_prime(number): + if number < 2 : + return False + if number == 2: + return True + + for test in range(2,int(math.sqrt(number))): + if (number % test) == 0: + return False + return True + + +n_numbers = int(input("Combien de nombres voulez-vous ?")) + +for (index,fib) in enumerate(get_fibonnacci(n_numbers)): + to_print = "Number {0} : {1} ; ".format(index,fib) + if is_prime(fib): + to_print += "is prime" + else: + to_print += "isn't prime" + print(to_print) + + + diff --git a/Chapter_4/ex2.py b/Chapter_4/ex2.py new file mode 100644 index 0000000000000000000000000000000000000000..d270b161253e8f7d83ab63e2d46dc8503982ea95 --- /dev/null +++ b/Chapter_4/ex2.py @@ -0,0 +1,12 @@ + + + +def factorial(N): + if N < 2: + return 1 + else: + return N*factorial(N-1) + + +for i in range(0,10): + print("{0}! = {1}".format(i,factorial(i))) diff --git a/Chapter_4/ex3.py b/Chapter_4/ex3.py new file mode 100644 index 0000000000000000000000000000000000000000..f554caf84fe767131b890fd51cab0f0b078936b1 --- /dev/null +++ b/Chapter_4/ex3.py @@ -0,0 +1,22 @@ + + +def is_perfect(number): + if type(number)==float: + print("Warning, {0} is a float. The function will consider it to be {1} instead.".format(number,int(number+0.5))) + number = int(number+0.5) + elif type(number) != int: + print("Error, cannot understand the user input : {0}".format(number)) + return False + + + sum_div = 0 + for div in range(1,number+1): + if number%div == 0: + sum_div += div + return sum_div == 2*number + + +test_cases = [1,1.0, 1.49 , 1.51, "arboretum", 2,3,4,5,6,7,8,9,10,28,496] + +for test in test_cases: + print("Trying {0} : {1}".format(test,is_perfect(test))) diff --git a/Chapter_4/ex4.py b/Chapter_4/ex4.py new file mode 100644 index 0000000000000000000000000000000000000000..912d10f9132497eb3fc5cda655f4d21672032577 --- /dev/null +++ b/Chapter_4/ex4.py @@ -0,0 +1,10 @@ +import timeit + +def multiplication(x,y): + if y < 2: + return x + else: + return x+multiplication(x,y-1) + + +print(multiplication(6,7))