Формулировка. Дано натуральное число. Подсчитать общее количество его делителей.
Решение. Задача достаточно похожа на две предыдущие. В ней также необходимо провести перебор в цикле некоторого количества натуральных чисел на предмет обнаружения делителей n, но при этом необходимо найти не первый из них с какого-либо конца отрезка [1, n] (это отрезок, содержащий все числа от 1 до n включительно), а посчитать их. Это можно сделать с помощью счетчика count, который нужно обнулить непосредственно перед входом в цикл. Затем в условном операторе if в случае истинности условия делимости числа n (n mod i = 0) нужно увеличивать счетчик count на единицу (это удобно делать с помощью оператора inc).
Алгоритм на естественном языке:
1) Ввод n;
2) Обнуление переменной count (в силу необходимости работать с ее значением без предварительного присваивания ей какого-либо числа)
3) Запуск цикла, при котором i изменяется от 1 до n. В цикле:
- Если n делится на i (то есть, остаток от деления числа n на i равен 0), то увеличиваем значение переменнойcount на 1;
4) Вывод на экран значения переменной count.
Код:
- program CountDiv;
- var
- i, n, count: word;
- begin
- readln(n);
- count := 0;
- for i := 1 to n do begin
- if n mod i = 0 then inc(count)
- end;
- writeln(count)
- end.