def divmax1(it1):    
    for x in it1:
        for y in range(1, x):
            if x % (x - y) == 0:
                yield x - y
                break

        
def divmax2(it1):

    def divisor_maxim(x): # retorna el màxim divisor de x
        i = x - 1
        while i >= 1:
            if x % i == 0:
                return i
            i = i - 1
            
    
    return map(divisor_maxim, it1)


def divmax3(it):
    
    def maxd(n): # retorna el màxim divisor de n
        itd = filter(lambda x: n%x==0, range(n-1, 0, -1))
        return next(itd)

    it2 = map(maxd, it)
    return it2


     
# Tria la solució que vols provar
divmax = divmax1

