Hosted by uCoz

Задача № 16. Подсчитать общее число делителей натурального числа

Формулировка. Дано натуральное число. Подсчитать общее количество его делителей.

Решение. Задача достаточно похожа на две предыдущие. В ней также необходимо провести перебор в цикле некоторого количества натуральных чисел на предмет обнаружения делителей n, но при этом необходимо найти не первый из них с какого-либо конца отрезка [1, n] (это отрезок, содержащий все числа от 1 до n включительно), а посчитать их. Это можно сделать с помощью счетчика count, который нужно обнулить непосредственно перед входом в цикл. Затем в условном операторе if в случае истинности условия делимости числа n (n mod i = 0) нужно увеличивать счетчик count на единицу (это удобно делать с помощью оператора inc).

Алгоритм на естественном языке:

1)      Ввод n;

2)      Обнуление переменной count (в силу необходимости работать с ее значением без предварительного присваивания ей какого-либо числа)

3)      Запуск цикла, при котором i изменяется от 1 до n. В цикле:

                                1.        Если n делится на i (то есть, остаток от деления числа n на i равен 0), то увеличиваем значение переменной count на 1;

4)      Вывод на экран значения переменной count.

Код:

  1. program CountDiv;
  2. var
  3. i, n, count: word;
  4. begin
  5. readln(n);
  6. count := 0;
  7. for i := 1 to n do begin
  8. if n mod i = 0 then inc(count)
  9. end;
  10. writeln(count)
  11. end.