В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Artem6776
Artem6776
24.02.2023 04:55 •  Информатика

|| Найдите все целые числа из промежутка от a до b, у которых сумма делителей равна k.

Показать ответ
Ответ:
wavesea
wavesea
19.08.2020 11:14
Можно конечно поизвращаться и придумать интересный алгоритм, но можно просто написать в лоб цикл с проверкой.

#include <iostream>
int main(){
    int num_1, num_2;
    cin >> num_1 >> num_2;
    for (int i = num_1 + 1; i != num_2; i++) {
        int cur = i, num = i;
        int res = 0;
        while (cur != 0) {
            int mod_n = cur % 10;
            if (mod_n == 0) {
                break;
            }
            if (num % mod_n == 0) {
                res = 1;
            }
            else {
                res = 0;
                break;
            }
            cur /= 10;
        }
        if (res) {
            cout << i << ' ';
        }
    }
}

Коротко, в двух словах, о чем тут код. 
мы проходим по циклу от A до B, для каждого числа, в цикле проверяем, делится ли оно на цифры из которых состоит. Для этого мы запоминаем в отдельную переменную cur наше число, и проверяем остаток от деления на 10 (т.е. самую левую цифру), после мы в cur записываем тоже число, но без последней цифры.
на примере 124. проверяем на делимость на 4, потом запоминаем 12, проверяем на делимость на 2, потом запоминаем 1, проверяем на делимость на 1, потом записываем 0. Как только видим 0 прекращаем. 
Дальше в цикле есть проверка на то, что если хоть раз что-то не поделилось, то переходим к след. числу
0,0(0 оценок)
Ответ:
Viki258
Viki258
02.02.2020 05:25
Решается обычным перебором
0 - нет
01 возможно Б, разделяем на 2 варианта
011 (Д)   или Б 1
Д 0        | Б 10 (Г)
Д 01(Б) | Б Г 1 | Б 101 (101 не существует, значит отсекаем этот вариант)
ДБ 0 | Д 010 (также убираем) | БГ 10(Г)
ДБ 00 | БГГ  0 | БГ 100(В)
ДБ 000(А) |БГГ 00 | БГВ 0
ДБА 1 | БГГ 001(убираем) | БГВ 01(Б)
ДБА 11(убираем) | БГВБ 1 | БГВ 011(Д)
БГВБ 10(Г) | БГВД 0 
осталось 2 цифры
БГВБГ 00( убираем) | БГВБ 1000(убираем) | БГВД 000(А) 
следователь у нас остался только 1 вариант. это БГВДА
Лучше и нагляднее все это расписать деревом, но тут как вам удобнее
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота