Как найти самую длинную серию составных чисел ниже 10000? Как мне распечатать только самую длинную серию?
Это мой код:
series = 0
for counter in range (1, 30):
if counter > 1:
for i in range (2, counter):
if (counter % i) == 0:
series += 1
break
else:
print ("The longest series of composite numbers under 10.000 starts at %d and ends at %d the series is %d long" % ((counter-series), counter, series))
series = 0
Я хотел бы, чтобы он дал только самые длинные серии для печати, я думаю, что мне нужно где-то хранить ряд переменных и проверять каждую итерацию, если новое значение серии выше, чем предыдущая, и менять местами, если она выше, а затем просто печатать один раз. Но я не могу понять, как эффективно хранить и обменивать.
Надеюсь, это достаточно ясно
1 ответ
Решение
Я использовал цикл for, и это сработало, вот мой код:
series = 0
b = 0
a = 0
for num in range (1, 10000):
for j in range (2, num):
if (num % j) == 0:
series += 1
break
else:
if series > b:
b = series
a = num
series = 0
else:
series = 0
print ("De langste reeks niet-priemgetallen onder de 10.000 begint op %d en eindigt op %d" % (((a-b), a-1)))
print ("de reeks is %d lang" % b)