Паскаль! Ввести целое число и определить все его делители. Вывести все делители числа **...

0 голосов
105 просмотров

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


Информатика (392 баллов) | 105 просмотров
Дан 1 ответ
0 голосов

Программа:

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

 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.

(8.7k баллов)
0

Если в dividersOf(x, true); поставить false или вообще не писать true, выведет делители без учета отрицательных.

0

Замечу, что выводить на экран массив можно через a.Println;