Вывести делители чисел
Задача
Для каждого натурального числа в промежутке от M до N вывести все делители, кроме единицы и самого числа. Значения M и N вводятся с клавиатуры.
Решение
В цикле перебирать числа от m до n и проверять делимость каждого на натуральные числа от 2 до m div 2
(деление нацело на 2, так как максимальный целый делитель равен половине числа). Если число делится нацело на текущий делитель (не имеет остатка), то выводить делитель на экран. В конце каждой итерации цикла увеличивать m на единицу.
Программа на языке Паскаль:
var m, n, i: word; begin readln(m, n); while m <= n do begin write(m,': '); for i := 2 to m div 2 do if m mod i = 0 then write(i, ' '); writeln; m := m + 1; end; end.
Пример работы программы:
100 121 100: 2 4 5 10 20 25 50 101: 102: 2 3 6 17 34 51 103: 104: 2 4 8 13 26 52 105: 3 5 7 15 21 35 106: 2 53 107: 108: 2 3 4 6 9 12 18 27 36 54 109: 110: 2 5 10 11 22 55 111: 3 37 112: 2 4 7 8 14 16 28 56 113: 114: 2 3 6 19 38 57 115: 5 23 116: 2 4 29 58 117: 3 9 13 39 118: 2 59 119: 7 17 120: 2 3 4 5 6 8 10 12 15 20 24 30 40 60 121: 11