Написать решение данной задачи в паскале. Используя только одну подпрограмму, в которой будет проверка делителей на простоту.Заданы два целых числа М, N. Определить, больше ли сумма простых делителей числа М, произведения составных делителей числа N.

23 Июн 2019 в 19:42
199 +1
1
Ответы
1
program divisors;
function isPrime(num: Integer): Boolean;
var
i: Integer;
begin
isPrime := True;
if (num < 2) then
isPrime := False
else
begin
i := 2;
while (i * i <= num) and isPrime do
begin
if (num mod i = 0) then
isPrime := False;
i := i + 1;
end;
end;
end;
var
M, N, sumPrimes, productComposites, i: Integer;
begin
sumPrimes := 0;
productComposites := 1;
Write('Enter number M: ');
Readln(M);
Write('Enter number N: ');
Readln(N);
for i := 1 to M div 2 do
begin
if (M mod i = 0) and isPrime(i) then
sumPrimes := sumPrimes + i;
end;
for i := 2 to N div 2 do
begin
if (N mod i = 0) and not isPrime(i) then
productComposites := productComposites * i;
end;
if (sumPrimes > productComposites) then
writeln('Sum of prime divisors of M is greater than product of composite divisors of N')
else
writeln('Sum of prime divisors of M is not greater than product of composite divisors of N');
end.

Программа сначала определяет функцию isPrime, которая проверяет, является ли число простым. Затем она запрашивает у пользователя два целых числа M и N. Далее программа вычисляет сумму всех простых делителей числа M и произведение всех составных делителей числа N. И наконец, программа сравнивает полученные значения и выводит соответствующее сообщение.

21 Апр 2024 в 00:45
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир