Skip to content

Commit fb77f79

Browse files
Add type hints to maths/primelib.py
1 parent 3c88735 commit fb77f79

File tree

1 file changed

+37
-37
lines changed

1 file changed

+37
-37
lines changed

maths/primelib.py

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ def is_prime(number: int) -> bool:
6666
"""
6767

6868
# precondition
69-
assert isinstance(number, int) and (number >= 0), (
70-
"'number' must been an int and positive"
71-
)
69+
assert isinstance(number, int) and (
70+
number >= 0
71+
), "'number' must been an int and positive"
7272

7373
status = True
7474

@@ -92,7 +92,7 @@ def is_prime(number: int) -> bool:
9292
# ------------------------------------------
9393

9494

95-
def sieve_er(n):
95+
def sieve_er(n: int) -> list[int]:
9696
"""
9797
input: positive integer 'N' > 2
9898
returns a list of prime numbers from 2 up to N.
@@ -138,7 +138,7 @@ def sieve_er(n):
138138
# --------------------------------
139139

140140

141-
def get_prime_numbers(n):
141+
def get_prime_numbers(n: int) -> list[int]:
142142
"""
143143
input: positive integer 'N' > 2
144144
returns a list of prime numbers from 2 up to N (inclusive)
@@ -176,7 +176,7 @@ def get_prime_numbers(n):
176176
# -----------------------------------------
177177

178178

179-
def prime_factorization(number):
179+
def prime_factorization(number: int) -> list[int]:
180180
"""
181181
input: positive integer 'number'
182182
returns a list of the prime number factors of 'number'
@@ -216,7 +216,7 @@ def prime_factorization(number):
216216
while quotient != 1:
217217
if is_prime(factor) and (quotient % factor == 0):
218218
ans.append(factor)
219-
quotient /= factor
219+
quotient //= factor
220220
else:
221221
factor += 1
222222

@@ -232,7 +232,7 @@ def prime_factorization(number):
232232
# -----------------------------------------
233233

234234

235-
def greatest_prime_factor(number):
235+
def greatest_prime_factor(number: int) -> int:
236236
"""
237237
input: positive integer 'number' >= 0
238238
returns the greatest prime number factor of 'number'
@@ -254,9 +254,9 @@ def greatest_prime_factor(number):
254254
"""
255255

256256
# precondition
257-
assert isinstance(number, int) and (number >= 0), (
258-
"'number' must been an int and >= 0"
259-
)
257+
assert isinstance(number, int) and (
258+
number >= 0
259+
), "'number' must been an int and >= 0"
260260

261261
ans = 0
262262

@@ -274,7 +274,7 @@ def greatest_prime_factor(number):
274274
# ----------------------------------------------
275275

276276

277-
def smallest_prime_factor(number):
277+
def smallest_prime_factor(number: int) -> int:
278278
"""
279279
input: integer 'number' >= 0
280280
returns the smallest prime number factor of 'number'
@@ -296,9 +296,9 @@ def smallest_prime_factor(number):
296296
"""
297297

298298
# precondition
299-
assert isinstance(number, int) and (number >= 0), (
300-
"'number' must been an int and >= 0"
301-
)
299+
assert isinstance(number, int) and (
300+
number >= 0
301+
), "'number' must been an int and >= 0"
302302

303303
ans = 0
304304

@@ -316,7 +316,7 @@ def smallest_prime_factor(number):
316316
# ----------------------
317317

318318

319-
def is_even(number):
319+
def is_even(number: int) -> bool:
320320
"""
321321
input: integer 'number'
322322
returns true if 'number' is even, otherwise false.
@@ -345,7 +345,7 @@ def is_even(number):
345345
# ------------------------
346346

347347

348-
def is_odd(number):
348+
def is_odd(number: int) -> bool:
349349
"""
350350
input: integer 'number'
351351
returns true if 'number' is odd, otherwise false.
@@ -374,7 +374,7 @@ def is_odd(number):
374374
# ------------------------
375375

376376

377-
def goldbach(number):
377+
def goldbach(number: int) -> list[int]:
378378
"""
379379
Goldbach's assumption
380380
input: a even positive integer 'number' > 2
@@ -399,9 +399,9 @@ def goldbach(number):
399399
"""
400400

401401
# precondition
402-
assert isinstance(number, int) and (number > 2) and is_even(number), (
403-
"'number' must been an int, even and > 2"
404-
)
402+
assert (
403+
isinstance(number, int) and (number > 2) and is_even(number)
404+
), "'number' must been an int, even and > 2"
405405

406406
ans = [] # this list will returned
407407

@@ -444,7 +444,7 @@ def goldbach(number):
444444
# ----------------------------------------------
445445

446446

447-
def kg_v(number1, number2):
447+
def kg_v(number1: int, number2: int) -> int:
448448
"""
449449
Least common multiple
450450
input: two positive integer 'number1' and 'number2'
@@ -525,17 +525,17 @@ def kg_v(number1, number2):
525525
done.append(n)
526526

527527
# precondition
528-
assert isinstance(ans, int) and (ans >= 0), (
529-
"'ans' must been from type int and positive"
530-
)
528+
assert isinstance(ans, int) and (
529+
ans >= 0
530+
), "'ans' must been from type int and positive"
531531

532532
return ans
533533

534534

535535
# ----------------------------------
536536

537537

538-
def get_prime(n):
538+
def get_prime(n: int) -> int:
539539
"""
540540
Gets the n-th prime number.
541541
input: positive integer 'n' >= 0
@@ -574,17 +574,17 @@ def get_prime(n):
574574
ans += 1
575575

576576
# precondition
577-
assert isinstance(ans, int) and is_prime(ans), (
578-
"'ans' must been a prime number and from type int"
579-
)
577+
assert isinstance(ans, int) and is_prime(
578+
ans
579+
), "'ans' must been a prime number and from type int"
580580

581581
return ans
582582

583583

584584
# ---------------------------------------------------
585585

586586

587-
def get_primes_between(p_number_1, p_number_2):
587+
def get_primes_between(p_number_1: int, p_number_2: int) -> list[int]:
588588
"""
589589
input: prime numbers 'pNumber1' and 'pNumber2'
590590
pNumber1 < pNumber2
@@ -648,7 +648,7 @@ def get_primes_between(p_number_1, p_number_2):
648648
# ----------------------------------------------------
649649

650650

651-
def get_divisors(n):
651+
def get_divisors(n: int) -> list[int]:
652652
"""
653653
input: positive integer 'n' >= 1
654654
returns all divisors of n (inclusive 1 and 'n')
@@ -685,7 +685,7 @@ def get_divisors(n):
685685
# ----------------------------------------------------
686686

687687

688-
def is_perfect_number(number):
688+
def is_perfect_number(number: int) -> bool:
689689
"""
690690
input: positive integer 'number' > 1
691691
returns true if 'number' is a perfect number otherwise false.
@@ -705,9 +705,9 @@ def is_perfect_number(number):
705705
"""
706706

707707
# precondition
708-
assert isinstance(number, int) and (number > 1), (
709-
"'number' must been an int and >= 1"
710-
)
708+
assert isinstance(number, int) and (
709+
number > 1
710+
), "'number' must been an int and >= 1"
711711

712712
divisors = get_divisors(number)
713713

@@ -725,7 +725,7 @@ def is_perfect_number(number):
725725
# ------------------------------------------------------------
726726

727727

728-
def simplify_fraction(numerator, denominator):
728+
def simplify_fraction(numerator: int, denominator: int) -> tuple[int, int]:
729729
"""
730730
input: two integer 'numerator' and 'denominator'
731731
assumes: 'denominator' != 0
@@ -764,7 +764,7 @@ def simplify_fraction(numerator, denominator):
764764
# -----------------------------------------------------------------
765765

766766

767-
def factorial(n):
767+
def factorial(n: int) -> int:
768768
"""
769769
input: positive integer 'n'
770770
returns the factorial of 'n' (n!)

0 commit comments

Comments
 (0)