Przejdź do treści

Wszystkie dzielniki

Opis problemu

Rozwiązanie zupełnie naiwne

1
2
3
4
5
6
7
8
def divisors(n: int):
    for i in range(1, n + 1):
        if n % i == 0:
            print(i)

n = 12

divisors(n)

Rozwiązanie naiwne

def divisors(n: int):
    for i in range(1, (n // 2) + 1):
        if n % i == 0:
            print(i)

    if n > 1:
        print(n)

n = 12

divisors(n)

Rozwiązanie optymalne

def divisors(n: int):
    i = 1
    while i * i <= n:
        if n % i == 0:
            print(i)
            if i != (n // i):
                print(n // i)
        i += 1

n = 12

divisors(n)