@3DOSES

Посмотрите на простую задачку, почему не правильно?

На одном сайте дается данная задачка

Рассматривается множество целых чисел, принадлежащих числовому отрезку [4668; 10414], которые делятся на 3 или 11 и не делятся на 2, 13, 22, 33. Найдите количество таких чисел и минимальное из них. В ответе запишите два целых числа без пробелов и других дополнительных символов: сначала количество, затем минимальное число.


Сразу говорю ее правильный ответ это
9654671


Я написал решение в питоне, но у меня получается совершенно другой ответ и я не понимаю почему.
Моё решение
a = 0
b = 4668

for i in range(4668, 10414+1):
	if i % 3 == 0 or i % 11 == 0 and i % 13 != 0 and i % 22 != 0 and i % 33 != 0:
		a = a + 1
		b = i

print(a,b)


Ответ у меня получается
207710413


В чем моя ошибка?
  • Вопрос задан
  • 814 просмотров
Решения вопроса 1
@ihorkoo
1. Пропустили условие i % 2 != 0
2. Искали максимальное а не минимальное
3. Не правильно выполнялся приоритет операторов and, or

l = []
for i in range(4668, 10414+1):
    if (i % 3 == 0 or i % 11 == 0) and (i % 2 != 0 and i % 13 != 0 and i % 22 != 0 and i % 33 != 0):
        l.append(i)

print(len(l), min(l))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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