• Предмет: Информатика
  • Автор: basketofchickenwing
  • Вопрос задан 11 месяцев назад

Паскаль! Ввести целое число и определить все его делители. Вывести все делители числа на экран. Через REPEAT и UNTIL.

Ответы

Ответ дал: MrSolution
1

Программа:

program dividers;

var x, i, p: integer;

   y: array of integer;

function dividersOf(n: integer; includeNegative: boolean := false):array of integer;

var a: array of integer;

   i, k: integer;

begin

 k:= 1;

 if(n<0) then n:= n*(-1);

 for i:= 1 to n

   do if(n mod i = 0)

        then begin

               SetLength(a, k);

               a[a.Length-1]:= i;

               k:= k+1;

             end;

 if(includeNegative)

   then a:= a.Select(x -> x*(-1)).Sorted.ToArray+a;

 dividersOf:= a;

end;

begin

 readln(x);

 y:= dividersOf(x, true);

 p:= y.Length-2;

 i:= 0;

 writeln('Делители числа ', x, ':');

 repeat

   write(y[i], ', ');

   i:= i+1;

 until i=p;

 write(y[p+1], '.');

end.


MrSolution: Если в dividersOf(x, true); поставить false или вообще не писать true, выведет делители без учета отрицательных.
MrSolution: Замечу, что выводить на экран массив можно через a.Println;
Вас заинтересует