Как найти самую длинную серию составных чисел ниже 10000?Как мне распечатать только самую длинную серию? - PullRequest
0 голосов
/ 30 января 2019

Это мой код:

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 Ответ

0 голосов
/ 03 февраля 2019

Я использовал цикл 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) 
...