# POTD 19 skel
# Author:
# Date:
# Description:

import sys

def get_factors(n):
    """ Return a dictionary with the integers from 2 to n (inclusive) as keys.
    The value associated with a key k is a list of the positive integer factors
    (divisors) of that number, in ascending order.
    Precondition: n is an integer >= 2 """

    factors = {}
    for i in range(2, n+1):
        factors[i] = [1]
    
    for fact in range(2, n+1):

        for mult in range(fact, n+1, fact):
            factors[mult].append(fact)
            
    return factors
    

if __name__ == "__main__":
    import sys
    n = int(sys.argv[1])
    
    factors = get_factors(n)
    
    if len(sys.argv) > 2:
        num = int(sys.argv[2])
        print(factors[num])
    else:
        for k, v in get_factors(n).items():
            print(f"{k}: {v}")
