Разложение на два множителя - PascalABC.NET
Формулировка задачи:
Нужно разложить число на два множителя. (множитель одна цифра)
32=4*8
81=9*9
8=8*0 etc
Решение задачи: «Разложение на два множителя»
textual
Листинг программы
begin var x := ReadlnInteger('Число:'); writelnformat('Пары множителей числа {0}: {1}', x, Range(1, x div 10).Where(v -> x mod v = 0). Select(v -> new KeyValuePair<integer, real>(v, x / v)).JoinIntoString(', ')); end.
Объяснение кода листинга программы
Код выполняет следующие действия:
- Вводит от пользователя целое число
x
и сохраняет его в переменнуюx
. - Выводит на экран сообщение с парами множителей числа
x
. - Использует цикл
for
с переменнойv
от 1 доx div 10
(т.е. от 1 до целой части частного от деленияx
на 10). - Для каждой
v
из этого диапазона проверяет, делится лиx
наv
без остатка (x mod v = 0
). - Если условие выполняется, то создает пару ключ-значение
KeyValuePair<integer, real>(v, x / v)
и добавляет её в результат. - В конце объединяет все пары в одну строку, разделяя их запятыми и пробелами, и выводит эту строку на экран.