def calculate_factor_initial_size(n, key):
    """
    Calculate different initial embedding sizes by a chosen factor.
    :param n: Number of nodes in the graph
    :param key: The factor- for example if key==10, the sizes will be n/10, n/100, n/100, .... the minimum is 100 nodes
    in the initial embedding
    :return: List of initial embedding sizes
    """
    initial = []
    i = n
    while i > 100:
        i = int(i/key)
        i_2 = int(i/2)
        key = pow(key, 2)
        if i > 100:
            initial.append(i)
        if i_2 > 100:
            initial.append(i_2)
    initial.append(100)
    ten_per = int(n/10)
    initial.append(ten_per)
    initial.sort()
    return initial