/* В задачата се говори за приятелски числа, които са такива, при които сумата от делителите на едното число е равна на второто число, а сумата от делителите на второто число е равна на първото. Пример: Числата 1184 и 1210 са приятелски. Ако вземем делителите на 1184: Делители на 1184: 1, 2, 4, 8, 16, 32, 37, 74, 148, 296, 592, 1184. Сумата от тях: 1 + 2 + 4 + 8 + 16 + 32 + 37 + 74 + 148 + 296 + 592 + 1184 = 1210. И за числото 1210: Делители на 1210: 1, 2, 5, 10, 11, 22, 55, 110, 121, 242, 605, 1210. Сумата от тях: 1 + 2 + 5 + 10 + 11 + 22 + 55 + 110 + 121 + 242 + 605 + 1210 = 1184. Тези числа са приятелски, защото сумата на делителите на едното число дава другото число и обратно. Как да решим задачата: Програмата трябва да намери приятелски числа в даден диапазон. За всяко число изчисляваме сумата на неговите делители (без самото число). След това проверяваме дали тези две числа са приятелски, т.е. ако сумата от делителите на едното число е равно на второто и обратното. Примерен алгоритъм: За всяко число i от 1 до N: Изчисляваме сумата на делителите на i. Ако тази сума е число j и ако сумата от делителите на j е равно на i, то числата i и j са приятелски. Ще напиша примерен код за решаване на задачата на езика C#: */ using System; class Program { static int SumOfDivisors(int number) { int sum = 0; for (int i = 1; i <= number / 2; i++) { if (number % i == 0) { sum += i; } } return sum; } static void Main() { int limit = 10000; // Може да промените лимита for (int i = 1; i < limit; i++) { int sumDivisorsI = SumOfDivisors(i); if (sumDivisorsI > i) // Проверяваме само за числа по-големи от i { int sumDivisorsJ = SumOfDivisors(sumDivisorsI); if (sumDivisorsJ == i) { Console.WriteLine($"Приятелски числа: {i} и {sumDivisorsI}"); } } } } }