parfait.py

Created by alexandrebret-84

Created on October 16, 2021

636 Bytes

parf(n) pour trouver les nombres parfaits entre 1 et n.


def div_strict(n:int):
    if n == 0:
        return "0 a une infinité de diviseurs dont 42"
    d = []
    if n > 0:
        for i in range(1, n+1):
            if n % i == 0:
                d.append(i)
        d.remove(d[-1])
        return d
    
    
def parf(n:int):
    if n < 0:
        return "Un nombre parfait ne peut être que positif"
    if n == 0:
        return None
    nb_parf = []
    for i in range(1, n+1):
        a = 0
        d = div_strict(i)
        for j in range(len(d)):
            a += d[j]
        if a == i:
            nb_parf.append(i)
        else:
            pass
    return nb_parf