Задать вопрос
19 февраля, 09:06

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

Дружественные числа были открыты последователями Пифагора, которые, однако, знали только одну пару дружественных чисел - 220 и 284.

Список делителей для 220: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 и 110, сумма делителей равна 284.

Список делителей для 284: 1, 2, 4, 71 и 142, сумма делителей равна 220.

Требуется написать программу, которая проверяет числа и выводит сообщение "числа дружественные" или "числа не дружественные"

Программа должна:

Прочитать из исходного файла task2. in два целых числа n, m

Определить и вывести в файл task2. оut текст "числа дружественные" или "числа не дружественные"

+5
Ответы (1)
  1. 19 февраля, 09:51
    0
    var n, m: integer;

    f1, f2: text;

    function sd (a:integer) : integer;

    var s, i:integer;

    begin

    s:=1;

    for i:=2 to a div 2 do

    if a mod i=0 then s:=s+i;

    sd:=s;

    end;

    begin

    assign (f1,'task2. in') ;

    reset (f1) ;

    assign (f2,'task2. out') ;

    rewrite (f2) ;

    readln (f1, n, m) ;

    if (sd (n) = m) and (sd (m) = n)

    then writeln (f2,'числа дружественные')

    else writeln (f2,'числа не дружественные') ;

    close (f1) ;

    close (f2) ;

    end.

    Пример:

    Файл task. in

    220 284

    Файл task. out

    числа дружественные
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Проверить являются ли два введенных числа дружественными. Дружественные числа - пара чисел, каждое из которых равно сумме собственных ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы