

from __future__ import annotations


def 					_UpperCAmelCase       (  _SCREAMING_SNAKE_CASE					:		int       ):





    """simple docstring"""


    SCREAMING_SNAKE_CASE_									=						2
    SCREAMING_SNAKE_CASE_									=						[]
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            factors.append(_SCREAMING_SNAKE_CASE       )
    if n > 1:
        factors.append(_SCREAMING_SNAKE_CASE       )
    return factors


if __name__ == "__main__":
       import doctest

       doctest.testmod()





def 					_UpperCAmelCase       (  _SCREAMING_SNAKE_CASE					:		int = 200       ):





    """simple docstring"""


    SCREAMING_SNAKE_CASE_									=						[1, 2, 5, 10, 20, 50, 100, 200]
    SCREAMING_SNAKE_CASE_									=						[0] * (pence + 1)
    SCREAMING_SNAKE_CASE_									=						1  # base case: 1 way to make 0 pence

    for coin in coins:
        for i in range(_SCREAMING_SNAKE_CASE ,   pence + 1 ,   1       ):
            number_of_ways[i] += number_of_ways[i - coin]
    return number_of_ways[pence]


if __name__ == "__main__":
       assert solution(200) == 73_682


