3ddeni, извини, компилятора фортрана под рукой не оказалось. Написал на c#. Работает. Код с комментариями и достаточно прозрачен. В диапазоне до 300 выводит такие пары:
6 6
28 28
220 284
284 220
Код:
![Выделить весь код](images/misc/selectcode.png)
static void Main(string[] args)
{
//верхний предел
int max_value = 500;
//суммы делителей
int sum_1;
int sum_2;
//перебираем в цикле все возможные натуральные числа
//не превосходящие максимального значения
for (int i=1; i <= max_value; i++)
{
//обнуляем суммы
sum_1 = 0;
sum_2 = 0;
//находим все делители числа i
for (int j = 1; j < i; j++)
{
//если числа делятся без остатка
if (Math.IEEERemainder(i,j) == 0)
{
//суммируем делители числа i
sum_1 = sum_1 + j;
}
}
//находим все делители sum -
//суммы числа делителей i
for (int j = 1; j < sum_1; j++)
{
//если числа делятся без остатка
if (Math.IEEERemainder(sum_1, j) == 0)
{
//суммируем делители числа sum_1
sum_2 = sum_2 + j;
}
}
//Если сумма делителей второго числа равна первому
//найдена пара "дружественных чисел"
if (i == sum_2)
{
Console.WriteLine("Pair: " + i.ToString() + " " + sum_1.ToString());
}
}
Console.WriteLine("Press any key for exit...");
Console.ReadKey();
}