Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 01.07.2025
Сообщений: 25

На какие цифры четырёхзначного числа делится его сумма цифр?

25.07.2025, 09:49. Показов 3230. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите программу, которая определит, на какие цифры четырёхзначного числа делится его сумма цифр?

Формат ввода
Вводится четырёхзначное число, состоящее из различных цифр и в котором нет нулей.

Формат вывода
Выведите строки:
Сумма цифр <число> делится на <цифра>

(Если оно делится на цифру этого числа в порядке слева направо.)

Если сумма цифр не делится ни на одну из своих цифр, выведите строку:
Сумма цифр <число> не делится на свои цифры.

Пример 1
Ввод
8342

Вывод
Сумма цифр 8342 не делится на свои цифры.

Пример 2
Ввод
6132

Вывод
Сумма цифр 6132 делится на 6
Сумма цифр 6132 делится на 1
Сумма цифр 6132 делится на 3
Сумма цифр 6132 делится на 2

Примечания
Внимание! В этой задаче проверяется PEP8!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.07.2025, 09:49
Ответы с готовыми решениями:

Сумма двух первых цифр заданного четырехзначного числа равна сумме двух его последних цифр
Составить программы, печатающие значение True, если следующие указанные высказывания являются...

Проверить, что сумма двух первых цифр заданного четырехзначного числа равна сумме двух его последних цифр.
Составить программу в Python, печатающие значение True, если указанное высказывание являются...

Сумма цифр трехзначного числа кратна 7, само число также делится на 7. Найдите все такие числа
Сумма цифр трехзначного числа кратна 7, само число также делится на 7. Найдите все такие числа ...

14
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
25.07.2025, 10:21
Лучший ответ Сообщение было отмечено Anuta_2804 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
n = int(input())
a = n//1000
b = n//100%10
c = n%100//10
d = n%10
s = a + b + c + d
flag = False
if s%a == 0:
    print(f'Сумма цифр {n} делится на {a}')
    flag = True
if s%b == 0:
    print(f'Сумма цифр {n} делится на {b}')
    flag = True
if s%c == 0:
    print(f'Сумма цифр {n} делится на {c}')
    flag = True
if s%d == 0:
    print(f'Сумма цифр {n} делится на {d}')
    flag = True
if not flag:
    print(f'Сумма цифр {n} не делится на свои цифры')
Ну а причесать код так, чтобы он соответствовал PEP8, Вам придется сделать самостоятельно Уж извините, что-то Вы должны сделать и сами, а не просить решения таких элементарных заданий, проходя некий курс.
2
231 / 172 / 71
Регистрация: 14.06.2024
Сообщений: 468
25.07.2025, 10:40
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
num = int(input('n='))
#num = 8342
sum_digits = sum(map(int,list(str(num))))
set_digits = set()
flag_print = False
for char_digit in str(num):
    int_digit = int(char_digit)
    if not int_digit in set_digits:
        set_digits.add(int_digit)
        if int_digit and sum_digits % int_digit == 0:
            print(f'Сумма цифр {num} делится на {int_digit}')
            flag_print = True
if not flag_print:
    print(f'Сумма цифр {num} не делится на свои цифры.')
1
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
25.07.2025, 14:45
udmurt2024, туда-сюда гонять преобразование из строки в число и наоборот это неправильно

Цитата Сообщение от udmurt2024 Посмотреть сообщение
if int_digit
в условии сказано, что нулевых цифр нет
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2941 / 1047
Регистрация: 01.06.2021
Сообщений: 10,923
25.07.2025, 15:01
Для 3 и 9 не нужно вычислять сумму, можно просто проверить, делится ли число на 3 или 9. Если да, то и сумма цифр будет делиться.
Хотя, толку от этого мало
0
Эксперт Pascal/Delphi
 Аватар для droider
4888 / 2822 / 865
Регистрация: 04.10.2012
Сообщений: 10,264
27.07.2025, 18:15
Anuta_2804,

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def main():
    # Ввод четырёхзначного числа
    number = input().strip()
 
    # Преобразуем в целое число и получаем цифры
    num = int(number)
    digits = [int(d) for d in number]
 
    # Вычисляем сумму цифр
    digit_sum = sum(digits)
 
    # Проверяем, на какие цифры делится сумма
    divisible_digits = []
    for digit in digits:
        if digit_sum % digit == 0:
            divisible_digits.append(digit)
 
    # Вывод результата
    if divisible_digits:
        for digit in digits:
            if digit_sum % digit == 0:
                print(f"Сумма цифр {num} делится на {digit}")
    else:
        print(f"Сумма цифр {num} не делится на свои цифры.")
 
 
if __name__ == "__main__":
    main()
1
125 / 120 / 18
Регистрация: 05.08.2021
Сообщений: 525
28.07.2025, 13:22
Мой вариант. Даже с нулями расправится... Хотя почти такой же уже был выше
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
n = input()
l = list(map(int,n))
s = sum(l)
test = False
for i in range(len(l)):
    if not l[i]:
        continue
    else:
        if not s % l[i]:
           test = True
           print(f'Сумма цифр {n} делится на {l[i]}')
if not test:
    print(f'Сумма цифр {n} не делится на свои цифры.')
1
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
30.07.2025, 13:15
Экзотический вариант

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
n = int(input())
s = 0
for _ in range(4):
    d = n//1000
    s += d
    n = n%1000*10 + d
flag = False
for _ in range(4):
    d = n//1000
    if s%d == 0:
        print(f'Сумма цифр {n} делится на {d}')
        flag = True
    n = n%1000*10 + d
if not flag:
    print(f'Сумма цифр {n} не делится на свои цифры')
1
Любознательный
 Аватар для YuS_2
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
30.07.2025, 13:41
Цитата Сообщение от thyrex Посмотреть сообщение
Экзотический
не экзотический, а математический... экзотические, это как раз где цифры в буквы превращаются (магия же )
1
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,332
30.07.2025, 16:09
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def sieve_of_eratosthenes(n):
    primes = [True for i in range(n+1)]
    p = 2
    while p**2 <= n:
        if primes[p]:
            for i in range(p**2, n+1, p):
                primes[i] = False
        p += 1
    return [i for i in range(2, n+1) if primes[i]]
 
def prime_factors(n):
    factors = []
    primes = sieve_of_eratosthenes(n)
    for p in primes:
        while n % p == 0:
            factors.append(p)
            n //= p
    if n > 1:
        factors.append(n)
    return factors
n=int(input())
print(sieve_of_eratosthenes(n))
print(prime_factors(n))
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
30.07.2025, 21:06
isaak, а решето тут каким боком?
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,332
31.07.2025, 16:18
thyrex, тогда так:

Python
1
2
3
4
5
6
7
8
9
10
11
num = int (input())
res = [int(x) for x in str(num)]
 
can_devided = True
for r in res:
    if r == 0:
        continue
    if sum(res) % r != 0:
        can_devided = False
 
print(can_devided)
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
31.07.2025, 16:56
Использование списков для решения такой простой задачи - это кощунство. Это относится ко все предложенным вариантам со списками.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6234 / 2941 / 1047
Регистрация: 01.06.2021
Сообщений: 10,923
01.08.2025, 13:05
Цитата Сообщение от thyrex Посмотреть сообщение
Использование списков для решения такой простой задачи - это кощунство.
Для меня кощунство это написание целой скатерти кода ради такой простой задачи. Тут ключевое слово "простой".
Давайте прочтем условие:
Цитата Сообщение от Anuta_2804 Посмотреть сообщение
На какие цифры четырёхзначного числа делится его сумма цифр?
Четырёхзначное число!
Какая, блет, оптимизация для такой простой задачи?
Кощунство это написание целой скатерти кода лишь для того, чтобы код выполнился на несколько пикосекунд быстрее.
Да для этой задачи даже самый плохой метод будет работать быстро. Да хоть конвертируйте числа в строки, строки в числа тысячу раз, все равно код будет работать быстро, ведь там четырёхзначное число.

Для чего учебные задачи? Для того, чтобы подготовить к написанию реальных кодов.
Ни один опытный программист не похвалит за то, что ты для такой задачи написал целую скатерть кода, особенно когда тут оптимизация явно не к месту.
Лучше для такой задачи написать короткий и читабельный код с использованием строк.
1
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
01.08.2025, 17:27
Работа с числами, тем более с такими короткими, и должна оставаться работой с числами. Ибо после изучения ввода-вывода в любом ЯП идет изучение арифметических операций. И оптимизация тут совершенно не причем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.08.2025, 17:27
Помогаю со студенческими работами здесь

Наименьшее четырехзначное число и наибольшее четырехзначное число, которые можно получить из цифр введенного числа
Напишите программу, которая получает на вход четырехзначное положительное десятичное число и...

Если a делится на b или b делится на a, то вывести 1, иначе – любое другое число
Даны два целых числа a и b. Если a делится на b или b делится на a, то вывести 1, иначе – любое...

Найти четырехзначные числа, которые равны сумме кубов цифр исходного числа
Найти четырехзначные числа, которые равны сумме кубов цифр исходного числа. Помогите пожалуйста...

Сколько существует четырёхзначных цифр, которые в 600 раз больше суммы своих цифр?
Необходимо создать программу на Python, которая будет считать сколько существует четырёхзначных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru