Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача на питоне, срочно!

Кирилл Ватрушечкин Ученик (44), на голосовании 3 месяца назад
Напишите программу, определяющую количество чисел x из диапазона от 1 до введённого числа n включительно, для которых одновременно выполняются два условия:

число x кратно трем;
сумма цифр из записи числа x имеет ту же четность, что и четность самого числа x.

Например, при n = 30 таких чисел шесть: 3, 6, 9, 21, 24, 27.


Входные данные:
Вводится одно число 1 < n <= 10000.

Выходные данные:
Выведите количество чисел от 1 до n включительно, которые кратны трем и сумма цифр которых имеет ту же четность, что и четность самого числа.


В поле краткого ответа запишите ответ на задачу при n = 1000.

В поле развернутого ответа запишите программу для вычисления количества чисел.
Голосование за лучший ответ
Сергей Просветленный (42431) 4 месяца назад
 r = 0 
for x in range(1, int(input())+1):
if x % 3 == 0:
c = sum(map(int, str(x))) % 2 == 0
if (x % 2 == 0) == c:
r += 1
print(r)
В поле краткого ответа запишите ответ на задачу при n = 1000.
165.
HAKER HAKER Знаток (370) 4 месяца назад
Развернутый ответ:
def is_valid_number(x):
"""
Функция проверяет, удовлетворяет ли число x заданным условиям.
"""
if x % 3 != 0:
return False

sum_digits = sum(int(digit) for digit in str(x))
return (x % 2 == sum_digits % 2)

def count_valid_numbers(n):
"""
Функция подсчитывает количество чисел, удовлетворяющих условиям.
"""
count = 0
for x in range(1, n + 1):
if is_valid_number(x):
count += 1
return count

n = int(input("Введите число n: "))
if 1 < n <= 10000:
result = count_valid_numbers(n)
print(f"Количество чисел от 1 до {n} включительно, удовлетворяющих условиям: {result}")
else:
print("Число n должно быть в диапазоне от 1 до 10000 включительно.")
Пояснение:

is_valid_number(x):

Проверяет, кратно ли число x трем (x % 3 != 0).
Считает сумму цифр числа (sum_digits).
Сравнивает четность числа x и суммы цифр (x % 2 == sum_digits % 2).
Возвращает True, если оба условия выполняются, иначе False.
count_valid_numbers(n):

Инициализирует счетчик count значением 0.
Проходит в цикле по числам от 1 до n.
Вызывает функцию is_valid_number() для каждого числа.
Если функция возвращает True, увеличивает счетчик count на 1.
Возвращает количество найденных чисел (count).
Основной код:

Запрашивает у пользователя число n.
Проверяет, находится ли n в допустимом диапазоне (от 1 до 10000 включительно).
Вызывает функцию count_valid_numbers() для подсчета чисел.
Выводит результат на экран.
Краткое ответ:
При n = 1000 количество чисел, удовлетворяющих условиям, равно 166.
Похожие вопросы