Решенные задачи на языке Паскаль
Условие задачи - из списка задач к Госэкзаменам по предмету "Технология разработки программных продуктов".
Задача №17.
Содружественные числа - это два натуральных числа, каждое из которых равно сумме натуральных делителей другого (за исключением самого его). Например: делителями числа 220 являются 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 они в сумме дают 284. Делителями числа 284 являются 1, 2, 4, 71, 142, они в сумме дают 220. Найти все содружественные числа до 1000.
var
a,b,i,j:integer;
{определение суммы делителей числа}
FUNCTION summ_del(const x:integer):integer;
var
s:integer;
BEGIN
s:=0;
for i:=1 to x-1 do
if x mod i =0 then s:=s+i;
summ_del:=s;
END;
BEGIN
for j:=2 to 1000 do
begin
a:=summ_del(j);
b:=summ_del(a);
if j=b then writeln(j,' - ',a);
end;
END.
* переменная a - сумма делителей числа от 2 до 1000;* переменная b - сумма делителей числа a;
* переменные i,j - для цикла.
Скачать исходник