From 2d3b9eb45bf2e7489be39818aca361f7a591878a Mon Sep 17 00:00:00 2001 From: Daniele Fucini Date: Sun, 29 Sep 2024 14:53:46 +0200 Subject: [PATCH] Add type hints in problems 1-10 --- Python/p001.py | 2 +- Python/p002.py | 2 +- Python/p003.py | 4 ++-- Python/p004.py | 2 +- Python/p005.py | 2 +- Python/p006.py | 2 +- Python/p007.py | 2 +- Python/p008.py | 9 ++++----- Python/p009.py | 4 +++- Python/p010.py | 2 +- 10 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Python/p001.py b/Python/p001.py index ec5b534..a90283d 100644 --- a/Python/p001.py +++ b/Python/p001.py @@ -8,7 +8,7 @@ from projecteuler import timing @timing -def p001(): +def p001() -> None: sum_ = 0 # Simple brute-force approach: try every number between 3 and 999, diff --git a/Python/p002.py b/Python/p002.py index 03d0ba1..acc0ac4 100644 --- a/Python/p002.py +++ b/Python/p002.py @@ -10,7 +10,7 @@ from projecteuler import timing @timing -def p002(): +def p002() -> None: N = 4000000 fib1 = 1 diff --git a/Python/p003.py b/Python/p003.py index 3eaa203..eef00ee 100644 --- a/Python/p003.py +++ b/Python/p003.py @@ -10,7 +10,7 @@ from projecteuler import is_prime, timing # Recursive approach: if num is prime, return num, otherwise # recursively look for the largest prime factor of num divided # by its prime factors until only the largest remains. -def max_prime_factor(num): +def max_prime_factor(num: int) -> int: # Use function defined in projecteuler.py to check if a number is prime. if is_prime(num): return num @@ -34,7 +34,7 @@ def max_prime_factor(num): @timing -def p003(): +def p003() -> None: res = max_prime_factor(600851475143) print('Project Euler, Problem 3') diff --git a/Python/p004.py b/Python/p004.py index a7f776b..b6780e5 100644 --- a/Python/p004.py +++ b/Python/p004.py @@ -8,7 +8,7 @@ from projecteuler import is_palindrome, timing @timing -def p004(): +def p004() -> None: max_ = 0 # Using a brute-force approach: generate every product of 3-digit numbers diff --git a/Python/p005.py b/Python/p005.py index 74cf7db..2235ab4 100644 --- a/Python/p005.py +++ b/Python/p005.py @@ -8,7 +8,7 @@ from projecteuler import lcmm, timing @timing -def p005(): +def p005() -> None: values = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20) diff --git a/Python/p006.py b/Python/p006.py index 09ad078..914a255 100644 --- a/Python/p006.py +++ b/Python/p006.py @@ -16,7 +16,7 @@ from projecteuler import timing @timing -def p006(): +def p006() -> None: sum_squares = 0 square_sum = 0 diff --git a/Python/p007.py b/Python/p007.py index fbfc2a1..0493d5a 100644 --- a/Python/p007.py +++ b/Python/p007.py @@ -8,7 +8,7 @@ from projecteuler import is_prime, timing @timing -def p007(): +def p007() -> None: count = 1 n = 1 diff --git a/Python/p008.py b/Python/p008.py index 261612b..6e95ecb 100644 --- a/Python/p008.py +++ b/Python/p008.py @@ -29,7 +29,7 @@ from projecteuler import timing @timing -def p008(): +def p008() -> None: number = '73167176531330624919225119674426574742355349194934' +\ '96983520312774506326239578318016984801869478851843' +\ '85861560789112949495459501737958331952853208805511' +\ @@ -53,7 +53,7 @@ def p008(): # Transform the string into a list of integers number = list(map(int, number)) - max_ = 0 + _max = 0 # Calculate all the 13-digit products, and save the maximum for i in range(1000-13): @@ -63,11 +63,10 @@ def p008(): for j in curr: prod = prod * j - if prod > max_: - max_ = prod + _max = max(_max, prod) print('Project Euler, Problem 8') - print(f'Answer: {max_}') + print(f'Answer: {_max}') if __name__ == '__main__': diff --git a/Python/p009.py b/Python/p009.py index 616b706..cfaad2b 100644 --- a/Python/p009.py +++ b/Python/p009.py @@ -15,7 +15,7 @@ from projecteuler import timing @timing -def p009(): +def p009() -> None: found = 0 m = 2 @@ -34,6 +34,7 @@ def p009(): if a + b + c == 1000: found = 1 + break i = 2 @@ -48,6 +49,7 @@ def p009(): b = tmpb c = tmpc found = 1 + break if tmpa + tmpb + tmpc > 1000: diff --git a/Python/p010.py b/Python/p010.py index 16c62be..4054538 100644 --- a/Python/p010.py +++ b/Python/p010.py @@ -8,7 +8,7 @@ from projecteuler import sieve, timing @timing -def p010(): +def p010() -> None: N = 2000000 # Use the function in projecteuler.py implementing the