Написать программу которая, используя признаки делимости, определяет, делится ли число на 6 - Pascal ABC
Формулировка задачи:
признак делимости на 6 - это значит, что число делится на 2 и 3. я сделала по отдельности на 2 и 3 ( программа выше). а как это обобщить?
Решение задачи: «Написать программу которая, используя признаки делимости, определяет, делится ли число на 6»
textual
Листинг программы
var n:longint;
function d_2(x:longint):boolean;
begin
d_2:=not odd(x)
end;
function d_3(x:longint):boolean;
function sum(xx:longint):byte;
begin
if xx>0 then sum:=sum(xx div 10)+xx mod 10;
end;
begin
d_3:=sum(x) mod 3 = 0;
end;
begin
write('n = ');readln(n);
write(n);
if not((d_2(n))and(d_3(n))) then write(' не');
writeln(' делится на 6')
end.
Объяснение кода листинга программы
- Переменная n инициализируется как дробное число без знака со значением типа longint.
- Функция d_2 принимает целое число x и возвращает логическое значение true, если x не является четным, и false в противном случае.
- Функция d_3 принимает целое число x и возвращает логическое значение true, если сумма цифр числа x делится на 3 без остатка, и false в противном случае.
- В функции d_3 определена вспомогательная функция sum, которая принимает целое число xx и возвращает байтовое значение. Если xx больше нуля, то сначала выполняется деление на 10, затем полученный результат прибавляется к остатку от деления на 10, и только после этого выполняется операция модуля 10.
- В функции d_3 снова вызывается вспомогательная функция sum, но уже с аргументом x. Результат вычисления функции sum сохраняется в переменной sum_result.
- Затем проверяется, равен ли остаток от деления sum_result на 3 нулю. Если это так, то переменной d_3 присваивается значение true, иначе - false.
- В основной части программы считывается значение переменной n.
- Выводится значение переменной n.
- Проверяется, удовлетворяет ли n условиям, определенным в функциях d_2 и d_3. Если нет, то выводится слово
не. - Выводится слово
делится на 6.