Script Python Untuk Pembelajaran

1. faktoris

        
def factorize(n):
    factors = {}
    d = 2
    while n > 1:
        power = 0
        while n % d == 0:
            power += 1
            n //= d
        if power > 0:
            factors[d] = power
        d += 1
        if d * d > n:
            d = n
    return factors


def get_all_divisors(n):
    divisors = []
    d = 1
    while d * d <= n:
        if n % d == 0:
            divisors.append(d)
            if d * d != n:
                divisors.append(n // d)
        d += 1
    return sorted(divisors)


def test():
    assert factorize(24) == {2: 3, 3: 1}
    assert get_all_divisors(16) == [1, 2, 4, 8, 16]


test()
        
    

2. tapological sort

    
def topological_sort(graph):
    def dfs(graph, used, order, u):
        used[u] = True
        for v in graph[u]:
            if not used[v]:
                dfs(graph, used, order, v)
        order.append(u)

    n = len(graph)
    used = [False] * n
    order = []
    for i in range(n):
        if not used[i]:
            dfs(graph, used, order, i)

    return order[::-1]


def test():
    g = [[] for _ in range(3)]
    g[2].append(0)
    g[2].append(1)
    g[0].append(1)

    assert topological_sort(g) == [2, 0, 1]


test()
    

Comments

Popular posts from this blog

Belajar Perl

belajar Gitar Rythtm