Python の宿題ここで答えます Part 2
■ このスレッドは過去ログ倉庫に格納されています
0024デフォルトの名無しさん
2009/11/19(木) 19:00:14def divisor(n):
return set(reduce(lambda x, y: x + y, [[i, n / i] for i in range(2, int(n**.5) + 1) if not (n % i)], []))
def perfectnumber(limit):
g = count(2)
while True:
p = g.next()
if sum(divisor(p)) + 1 == p: yield p
if p >= limit: break
if __name__ == '__main__':
for n in perfectnumber(1000):
print n
■ このスレッドは過去ログ倉庫に格納されています