Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


3ddeni, извини, компилятора фортрана под рукой не оказалось. Написал на c#. Работает. Код с комментариями и достаточно прозрачен. В диапазоне до 300 выводит такие пары:
6 6
28 28
220 284
284 220


Код: Выделить весь код
        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();
        }

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:52, 27-08-2011 | #2