我试图创建一个生成器,它返回n的正确除数(不包括n本身)。它工作正常,直到256,但从257开始包括n ...我无法弄清楚为什么。谢谢你的帮助!
def divisorGenerator(n):
large_divisors = []
y = int(math.sqrt(n))
for i in xrange(1, y + 1):
if n % i is 0:
yield i
if i is not n / i and n is not n / i:
large_divisors.insert(0, n / i)
for divisor in large_divisors:
yield divisor