Задать вопрос
@JleBLLla

ЕГЭ информатика 25 задание(python). Что не так в моей программе?

Задание:
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [312614; 312651], числа, имеющие ровно шесть различных натуральных делителей. Для каждого найденного числа запишите эти шесть делителей в шесть соседних столбцов на экране с новой строки. Делители в строке должны следовать в порядке возрастания.

Например, в диапазоне [12; 15] ровно шесть различных натуральных делителей имеет число 12, поэтому для этого диапазона вывод на экране должна содержать следующие значения:

1 2 3 4 6 12
----------------------------------------------------------------------------------------------------------------------------------------------------
Написал следующую программу:
a = 312614
b = 312651
for i in range (a, b):
    ds = []
    for d in range (1, i):
        if (i % d == 0):
            ds.append(d)
            if len(ds) > 6:
                break
    if (len(ds) == 6):
        print (ds[0], ds[1], ds[2], ds[3], ds[4], ds[5])

----------------------------------------------------------------------------------------------------------------------------------------------------
Но она ничего в принципе не выводит, а ответ должен быть вот такой:
1 2 4 78157 156314 312628

1 3 9 34739 104217 312651
Не знаю в чем причина. До этого абсолютно идентичная программа только с другими числами выводила все на ура
  • Вопрос задан
  • 10706 просмотров
Подписаться Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev
software engineer
если len(ds) БОЛЬШЕ шести, прервать
if len(ds) > 6:
break


if (len(ds) == 6):

если len(ds) РАВНО шесть - вывести на экран.

Наверное дело в этой логике
Ответ написан
15432
@15432
Системный программист ^_^
Либо тут сделайте i+1
for d in range (1, i):
Либо вот тут сравнивайте с 5
if (len(ds) == 6):

Само число тоже считается делителем самого себя
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы