Проверка условия остатка от деления

Nerdy

Новичок
Пользователь
Окт 28, 2020
2
0
1
Добрый день. Составляю вопрос по форме (дабы не заблокировали вопрос):
1) Я использую Windows 10
2) использую компилятор python в браузере (https://www.onlinegdb.com/online_python_compiler)
3) Я не знаю как узнать версию библиотек :0
4) numbers = list(range(-1000, 2001, 17 and 23))
if numbers 10% !=3 or 5:
print (numbers)

Вообщем, я давно изучал питон от хауди хо ( 11 из 20 уроков). Сейчас у меня олимпиада, и мне нужно составить программу.
Текст задания: На основании исходных данных необходимо написать программу и получить ответ. Рассматривается множество целых нечетных чисел, принадлежащих числовому отрезку [-1000; 2000], которые делятся на 17 или 23 и не оканчиваются на 3 или 5. Найдите количество таких чисел и максимальное из них. В ответе запишите два целых числа: сначала количество, затем максимальное число.
Я сделал список чисел от -1000 до 2000 которые делятся на 17 или 23. Если убрать 2 строчку кода, то будет вывод этих чисел. А теперь у меня задача, сделать так, чтобы числа при выводе превратились в количество, при этом числа будут считаться в количество которые не оканчиваются на 3 и 5.
Мне подсказали с условием, но я не могу его осуществить.
Условие: Если остаток от деления на 10 не равен 3 или остаток отделения на 10 не равен 5, то переменная, отвечающая за количество увеличивается на 1.
 

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
17 and 23 в питоне соответствует значению 23, поэтому твой range делает не то, что нужно.
Python:
count = 0
max_num = -1000
for x in range(-1000, 2001):
    last_digit = x % 10
    if not (x % 17 or x % 23) and last_digit not in (3, 5):
        count += 1
        max_num = max(max_num, x)
print(count, max_num)

# либо:

nums = [x for x in range(-1000, 2001) if not (x % 17 or x % 23) and x % 10 not in (3, 5)]
print(len(nums), max(nums))
 

Форум IT Специалистов