def AlternateNumberGenerator(): isEven = lambda n: n % 2 == 0 n = 1 counter = 2 while True: yield n n = n + (-counter**2 if isEven(counter) else counter**2) counter+=1 def alternateSumStopAt(k): numGen = AlternateNumberGenerator() previousN = None n = next(numGen) iterations = 0 while n