Вопрос задан 07.11.2026 в 11:49. Предмет Информатика. Спрашивает Попович Артур.

Два числа называются дружественными, если сумма собственных делителей (то есть всех положительных делителей, отличных от самого числа) любого из них равна другому числу. Например, числа 220 и 284 дружественные.

Выведите в порядке возрастания числа в диапазоне [2; 30000], имеющие дружественное число, большее чем само это число, и через пробел это дружественное число. Каждое следующее число из указанного диапазона выводите на новой строке.

В ПАСКАЛЕ ABC

Перейти к ответам

Ответы на вопрос

Отвечает Ханский Кыдыр.

Программа перебирает числа от 2 до 30000, находит сумму собственных делителей каждого числа и проверяет, образуют ли числа дружественную пару.

PascalABC.NET:
function SumDiv(n: integer): integer;
var i, s: integer;
begin
  s := 1;
  for i := 2 to Trunc(Sqrt(n)) do
    if n mod i = 0 then
    begin
      s := s + i;
      if i <> n div i then
        s := s + n div i;
    end;
  if n = 1 then s := 0;
  Result := s;
end;

var n, m: integer;
begin
  for n := 2 to 30000 do
  begin
    m := SumDiv(n);
    if (m > n) and (SumDiv(m) = n) then
      Writeln(n, ' ', m);
  end;
end.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос