示例#1
0
def solve():
    prevQty = 1
    for i in itertools.count(2):
        qty = product((k if p==2 else k+1) for p,k in factor(i+1))
        # qty == number of divisors of i+1 (or of (i+1)//2 when i+1 is even)
        if qty * prevQty > 500:
            return i*(i+1)//2
        prevQty = qty
示例#2
0
def solve():
    n = 1
    streak = 0
    while streak != 4:
        fctrs = len(list(factor(n)))
        if fctrs == 4:
            streak += 1
        else:
            streak = 0
        n += 1
    return n-4
示例#3
0
def solve():
    numbers = set()
    row = [1]
    for i in xrange(51):
        for n in row:
            if all(k < 2 for _,k in factor(n)):
                numbers.add(n)
        row2 = list(imap(add, row, [0] + row))
        if i % 2 == 1:
            row2.append(row[-1] * 2)
        row = row2
    return sum(numbers)
示例#4
0
def solve():
    n = 1
    while product(k*2+1 for _,k in factor(n)) // 2 + 1 <= 1000:
        n += 1
    return n