References: wikipedia:square free number psfblack : True ruff : True doctest: NORMALIZEWHITESPACE This functions takes a list of prime factors as input. returns True if the factors are square free.  issquarefree1, 1, 2, 3, 4 False These are wrong but should return some value it simply checks for repetition in the numbers.  issquarefree1, 3, 4, 'sd', 0.0 True  issquarefree1, 0.5, 2, 0.0 True  issquarefree1, 2, 2, 5 False  issquarefree'asd' True  issquarefree24 Traceback most recent call last: ... TypeError: 'int' object is not iterable
from __future__ import annotations


def is_square_free(factors: list[int]) -> bool:
    """
    # doctest: +NORMALIZE_WHITESPACE
    This functions takes a list of prime factors as input.
    returns True if the factors are square free.
    >>> is_square_free([1, 1, 2, 3, 4])
    False

    These are wrong but should return some value
    it simply checks for repetition in the numbers.
    >>> is_square_free([1, 3, 4, 'sd', 0.0])
    True

    >>> is_square_free([1, 0.5, 2, 0.0])
    True
    >>> is_square_free([1, 2, 2, 5])
    False
    >>> is_square_free('asd')
    True
    >>> is_square_free(24)
    Traceback (most recent call last):
        ...
    TypeError: 'int' object is not iterable
    """
    return len(set(factors)) == len(factors)


if __name__ == "__main__":
    import doctest

    doctest.testmod()
