Разложение на два множителя - 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.

Объяснение кода листинга программы

Код выполняет следующие действия:

  1. Вводит от пользователя целое число x и сохраняет его в переменную x.
  2. Выводит на экран сообщение с парами множителей числа x.
  3. Использует цикл for с переменной v от 1 до x div 10 (т.е. от 1 до целой части частного от деления x на 10).
  4. Для каждой v из этого диапазона проверяет, делится ли x на v без остатка (x mod v = 0).
  5. Если условие выполняется, то создает пару ключ-значение KeyValuePair<integer, real>(v, x / v) и добавляет её в результат.
  6. В конце объединяет все пары в одну строку, разделяя их запятыми и пробелами, и выводит эту строку на экран.

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы