Паскаль. Основы программирования


Задание 2 - часть 3


Например, 1 5 7 35 являются делителями числа 35. Аналогичный список делителей должен быть напечатан для каждого из чисел от 1 до заданного числа n.

Алгоритм

Программа составляется очень просто. Для этого, надо создать процедуру определения делителей числа (программу мы разбирали на предыдущих занятиях) и для каждого числа из данного промежутка обращаться к ней.

Получится следующая простая программа. Единственное замечание. При определении числа делителей в процедуре, проверяются делители числа до его целой половины (n div

2), хотя мы знаем, что делители числа находятся до корня квадратного из него и находили их до trunc(sqrt(n)). Такое сделано только из соображений наглядности - в первом случае делители выдаются на экран в порядке возрастания и это выглядит приятнее.

Program Problem6;

    uses WinCrt;

    var

        i, n : integer;

{----------------------------------------------------------------------------------------}

    Procedure math_divisor(n : integer);

        var

            d : integer;

        begin

           for d := 1 to n div 2 do

              if n mod d=0 then write(d, ' ');

           writeln(n)

        end;

{----------------------------------------------------------------------------------------}

    begin

       write('Введите правую границу промежутка '); readln(n);

       for i := 1 to n do

         begin

            write('Делители числа ', i, ' следующие: ');

            math_divisor(i)

         end

    end.

Задание 3

1. Напишите процедуру, которая будет вычислять сумму правильных делителей числа n. Правильными делителями числа n являются все делители этого числа, за исключением его самого. Например, если n равно 12, то сумма правильных делителей есть 1 + 2 + 3 + 4 + 6 = 16. Для проверки правильности работы этой процедуры напишите главную программу, которая бы считывала различные значения n из заданного промежутка [a; b] и для каждого вычисляла сумму его правильных делителей.

2. Натуральное число n является точным квадратом тогда и только тогда, когда оно имеет нечетное число делителей.Доказать.

 





Начало  Назад  Вперед