Напишите программу, которая вводит натуральные числа а и b и выводит на экран все натуральные числа на отрезке [ a , b ] , делящиеся на каждую из своих цифр.
Входные данные
Входная строка содержит два натуральных числа – значения a и b , разделённых пробелами. Гарантируется, что a ≤ b .
Выходные данные
Программа должна вывести в одну строчку все натуральные числа на отрезке [ a , b ] , делящиеся на каждую из своих цифр. Числа разделяются пробелами.
Мирослав Бабошенков Вопрос задан 26 сентября 2019 в 10 — 11 классы, true»> Поделиться
1 Ответ (-а, -ов)
Можно конечно поизвращаться и придумать интересный алгоритм, но можно просто написать в лоб цикл с проверкой.
#include
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;
7.9 Простые числа. «Поколение Python»: курс для начинающих. Курс Stepik
>
if (num % mod_n == 0) res = 1;
>
else res = 0;
break;
>
cur /= 10;
>
if (res) cout >
>
>
Коротко, в двух словах, о чем тут код.
мы проходим по циклу от A до B, для каждого числа, в цикле проверяем, делится ли оно на цифры из которых состоит. Для этого мы запоминаем в отдельную переменную cur наше число, и проверяем остаток от деления на 10 (т.е. самую левую цифру), после мы в cur записываем тоже число, но без последней цифры.
на примере 124. проверяем на делимость на 4, потом запоминаем 12, проверяем на делимость на 2, потом запоминаем 1, проверяем на делимость на 1, потом записываем 0. Как только видим 0 прекращаем.
Дальше в цикле есть проверка на то, что если хоть раз что-то не поделилось, то переходим к след. числу
Эдуард Андрианов Отвечено 26 сентября 2019
- ‘ data-html=»true»> Поделиться
- Комментариев (0)
Источник: matfaq.ru
Вывести на экран все натуральные числа А, В, С
Задача 2.18
Вывести на экран все натуральные числа А, В, С, удовлетворяющие уравнению А 2 + В 2 = С 2 , условию А < B, и меньшие 20.
Вот здесь новичкам придётся поломать голову, хотя задача кажется сложной только на первый взгляд. А на самом деле, если разложить всё по полочкам и неспеша подумать, то всё окажется не так страшно.
Если вы забыли, что такое натуральное число, то читайте здесь, а мы перейдём к решению.
Итак, нам нужно подставить в уравнение такие числа А, В, С, чтобы они:
- Соответствовали уравнению.
- А было меньше, чем В.
- Все числа А, В, С были меньше 20.
Будем считать, что ноль НЕ входит в диапазон необходимых нам чисел (проверять условия при А = 0 нет смысла, так как в этом случае уравнение сводится к В 2 = С 2 ).
Простые числа (Python)
Условий кажется много, но на самом деле второе условие сильно облегчает нам задачу, потому что нам не надо будет проверять такие, например, комбинации, как А = 3, В = 1. Поэтому нам достаточно перебрать в цикле все значения А от 1 до 18 (потому что А должно быть меньше В, а В должно быть меньше 20, то есть не более 19).
У нас будет три вложенных цикла, так как нам надо “прогнать” через наши условия три числа. Остальное будет понятно из комментариев к примерам.
Решение задачи 2.18 на Паскале
program abc; //**************************************************************** // КОНСТАНТЫ //**************************************************************** const MAX_NUM = 20; //**************************************************************** // ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ //**************************************************************** var A, B, C : WORD; //**************************************************************** // ФУНКЦИИ И ПРОЦЕДУРЫ //**************************************************************** //**************************************************************** // Функция вычисляет сумму квадратов чисел А и В. //**************************************************************** function CalcAB(A, B : WORD) : WORD; begin Result := Sqr(A) + Sqr(B); end; //**************************************************************** // ОСНОВНАЯ ПРОГРАММА //**************************************************************** begin for A := 1 to MAX_NUM-2 do //Перебираем значения А for B := 1 to MAX_NUM-1 do //Перебираем значения В begin if A >= B then Continue; //Если А < B, то пропустить цикл for C := 1 to MAX_NUM-1 do //Перебираем значения С //Если удовлетворяет уравнению, то выводим на экран if Sqr(C) = CalcAB(A, B) then WriteLn(‘A =’, A:3, ‘, B =’, B:3, ‘, C =’, C:3, ‘ ‘, ‘ (‘, Sqr(A), ‘ + ‘, Sqr(B), ‘ = ‘, Sqr(C), ‘)’); end; WriteLn(‘The end. Press ENTER. ‘); ReadLn; end. Решение задачи 2.18 на С++ #include #include #include //. Подключить этот файл using namespace std; //**************************************************************** // КОНСТАНТЫ //**************************************************************** const unsigned short MAX_NUM = 20; //**************************************************************** // ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ //**************************************************************** unsigned short A, B, C; //**************************************************************** // ФУНКЦИИ И ПРОЦЕДУРЫ //**************************************************************** //**************************************************************** // Функция вычисляет сумму квадратов чисел А и В. //**************************************************************** unsigned short CalcAB(unsigned short A, unsigned short B) < return(A * A + B * B); >//**************************************************************** // ОСНОВНАЯ ПРОГРАММА //**************************************************************** int main(int argc, char *argv[]) < for(A = 1; A = B) continue; for(C = 1; C system(«PAUSE»); return EXIT_SUCCESS; >
Источник: info-master.su
Презентация «Циклические алгоритмы в Паскале»
Задача: Вывести на экран 5 раз « Hello ». Решение: умеем составлять линейный алгоритм program primer 1; begin writeln(‘ Hello’); writeln(‘ Hello ‘); writeln(‘ Hello ‘); writeln(‘ Hello ‘); writeln(‘ Hello ‘); end. Неэффективная программа
Для записи повторяющейся последовательности операторов используют циклы Program primer 1; var i: integer; begin for i:=1 to 5 do begin writeln(‘Hello’); end; end. Здесь переменная i запоминает сколько раз выполнилась повторяющаяся команда (тело цикла)
Цикл – это повторяющаяся последовательность операторов. Циклы бывают арифметические и итерационные Арифметический цикл – это такой цикл, число повторений которого известно заранее. В Pascal такой цикл обычно реализуется с помощью оператора for . Итерационный цикл – это такой цикл, число повторений которого заранее неизвестно и выход из цикла производится в случае выполнения или невыполнения какого-то условия. В Pascal такие циклы обычно реализуются с помощью операторов while и repeat
Цикл for Принцип работы: Сначала счетчику цикла присваивается начальное значение. Если это значение не больше конечного значения, то выполняется тело цикла. Затем значение счетчика увеличивается на 1 и опять сравнивается с конечным значением. Если оно по-прежнему не больше конечного значения, то оператор выполняется еще раз и так далее. Замечание: если тело цикла состоит из одного оператора, то begin и end можно опустить
Принцип работы: как и в первом случае, пока начальное значение не меньше конечного значения, то выполняется тело цикла. Затем значение счетчика уменьшается на 1
Задачи: 1) Написать программу, которая выводит на экран все натуральные числа от 1 до n 2) Написать программу, которая подсчитывает сумму натуральных чисел от 1 до n 3) Написать программу, которая считает x n для вещественного x и натурального n 4) Написать программу, которая выводит на экран: 20 40 80 160 320 5) Написать программу, которая подсчитывает произведение натуральных чисел от 1 до n Решение
1) Написать программу, которая выводит на экран все натуральные числа от 1 до n
2) Написать программу, которая подсчитывает сумму натуральных чисел от 1 до n
3) Написать программу, которая считает x n для вещественного x и натурального n
4) Написать программу, которая выводит на экран: 20 40 80 160 320
5 ) Написать программу, которая подсчитывает произведение натуральных чисел от 1 до n
Решение задач ОГЭ Дан фрагмент программы. Чему будет равна переменная s в результате работы данной программы? Решение: В этой задаче есть цикл for. Тело цикла будет выполняться 4 раза (при n=2,3,4,5 ) . s=2 n=2 s=2+2*2=6 n=3 s=6+3*2=12 n=4 s=12+4*2=20 n=5 s=20+5*2=30 Программа выводит значение переменной s , значит на экране будет число 30 Ответ: 30
Задачи Даны фрагменты программы. Что будет напечатано на экране в результате работы данных программ?
Цикл While (цикл с предусловием)
Задача: написать программу, которая выводит на экран все натуральные числа от 1 до n Решение: умеем составлять алгоритм с циклом for Программа с циклом for Program m 1 ; var i,n:integer; begin writeln(‘Введите n’); readln(n); for i:=1 to n do write(i,’ ‘); end . Программа с циклом while Program m2; var i,n:integer; begin writeln(‘Введите n’); readln(n); i:=1; while i истинно, то выполнение цикла завершится. Если ложно, то снова выполняется тело цикла
Замечания: т. к. условие завершения цикла проверяется в конце цикла, то операторы тела цикла выполнятся хотя бы один раз В цикле repeat , так же как и в операторе while возможна ситуация зацикливания в случае, если всегда будет оставаться ложным
Задача: написать программу, которая выводит на экран все натуральные числа от 1 до n Программа с циклом while Program m2; var i,n:integer; begin writeln(‘Введите n’); readln(n); i:=1; while i n end .
Задачи: 1 ) Напечатать все целые значения от A до B с шагом h . Вход: 1 10 2 Вход: 5 20 5 Выход: 1 3 5 7 9 Выход: 5 10 15 20 2 ) Для заданного натурального n и действительного x подсчитать сумму Вход: 3 Вход: 2 Выход: 14 Выход: 5 3 ) Для заданного натурального n и действительного x подсчитать сумму Вход: 3 Вход: 5 Выход: 1.83 Выход: 2.28 Решение
Источник: nsportal.ru