diff --git a/tools/math.py b/tools/math.py index 92ad48c..5bf6a2c 100644 --- a/tools/math.py +++ b/tools/math.py @@ -1,3 +1,4 @@ +import math from decimal import Decimal, ROUND_HALF_UP from .types import Numeric @@ -5,3 +6,13 @@ from .types import Numeric def round_half_up(number: Numeric) -> int: """ pythons round() rounds .5 to the *even* number; 0.5 == 0 """ return int(Decimal(number).to_integral(ROUND_HALF_UP)) + + +def get_factors(num: int) -> set: + f = {num} + for x in range(1, int(math.sqrt(num)) + 1): + if num % x == 0: + f.add(x) + f.add(num // x) + + return f