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

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

25.07.2025, 09:49. Показов 2864. Ответов 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
14439 / 7481 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
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
230 / 171 / 71
Регистрация: 14.06.2024
Сообщений: 464
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
14439 / 7481 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
25.07.2025, 14:45
udmurt2024, туда-сюда гонять преобразование из строки в число и наоборот это неправильно

Цитата Сообщение от udmurt2024 Посмотреть сообщение
if int_digit
в условии сказано, что нулевых цифр нет
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6160 / 2851 / 1042
Регистрация: 01.06.2021
Сообщений: 10,406
25.07.2025, 15:01
Для 3 и 9 не нужно вычислять сумму, можно просто проверить, делится ли число на 3 или 9. Если да, то и сумма цифр будет делиться.
Хотя, толку от этого мало
0
Эксперт Pascal/Delphi
 Аватар для droider
4883 / 2819 / 863
Регистрация: 04.10.2012
Сообщений: 10,257
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
100 / 96 / 17
Регистрация: 05.08.2021
Сообщений: 463
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
14439 / 7481 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
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
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
30.07.2025, 13:41
Цитата Сообщение от thyrex Посмотреть сообщение
Экзотический
не экзотический, а математический... экзотические, это как раз где цифры в буквы превращаются (магия же )
1
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
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
14439 / 7481 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
30.07.2025, 21:06
isaak, а решето тут каким боком?
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
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
14439 / 7481 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
31.07.2025, 16:56
Использование списков для решения такой простой задачи - это кощунство. Это относится ко все предложенным вариантам со списками.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6160 / 2851 / 1042
Регистрация: 01.06.2021
Сообщений: 10,406
01.08.2025, 13:05
Цитата Сообщение от thyrex Посмотреть сообщение
Использование списков для решения такой простой задачи - это кощунство.
Для меня кощунство это написание целой скатерти кода ради такой простой задачи. Тут ключевое слово "простой".
Давайте прочтем условие:
Цитата Сообщение от Anuta_2804 Посмотреть сообщение
На какие цифры четырёхзначного числа делится его сумма цифр?
Четырёхзначное число!
Какая, блет, оптимизация для такой простой задачи?
Кощунство это написание целой скатерти кода лишь для того, чтобы код выполнился на несколько пикосекунд быстрее.
Да для этой задачи даже самый плохой метод будет работать быстро. Да хоть конвертируйте числа в строки, строки в числа тысячу раз, все равно код будет работать быстро, ведь там четырёхзначное число.

Для чего учебные задачи? Для того, чтобы подготовить к написанию реальных кодов.
Ни один опытный программист не похвалит за то, что ты для такой задачи написал целую скатерть кода, особенно когда тут оптимизация явно не к месту.
Лучше для такой задачи написать короткий и читабельный код с использованием строк.
1
Вирусоборец
 Аватар для thyrex
14439 / 7481 / 1579
Регистрация: 06.09.2009
Сообщений: 27,119
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru