Напечатать все пары дружественных чисел, не превосходящих заданного натурального числа - C (СИ)

Узнай цену своей работы

Формулировка задачи:

2. Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого, за исключением самого себя (таковы, например, числа 220 и 284). Напечатать все пары дружественных чисел, не превосходящих заданного натурального числа. [/I]

Решение задачи: «Напечатать все пары дружественных чисел, не превосходящих заданного натурального числа»

textual
Листинг программы
  1. for(k=2; k<=N; k++) {
  2.   s = 1;
  3.   for(j=2; j <= k/2; j++)
  4.     if (k%j==0) s+= j;
  5.   if (s < k) continue;
  6.   if (s==k) printf("%d %d\n", k, k);
  7.   else {
  8.     s2 = 1;
  9.     for(j=2; j <= s/2; j++)
  10.       if (s%j==0) s2+= j;
  11.     if (s2==k) printf("%d %d\n", k, s);
  12.   }
  13. }

Объяснение кода листинга программы

В этом коде:

  1. Переменная N содержит число, которое не должно быть превышено парами дружественных чисел.
  2. Переменная k инициализируется значением 2 и увеличивается на 1 до тех пор, пока не станет меньше или равной N. Это делается для того, чтобы проверить все числа до N.
  3. Переменная s инициализируется значением 1 и увеличивается на сумму всех делителей числа k, которые меньше его половины. Если s станет равным k, то числа являются дружественными. В этом случае числа k и s выводятся на экран.
  4. Если s меньше k, то переходим к следующему числу.
  5. Если s больше k, то переходим к переменной s2, которая инициализируется значением 1 и увеличивается на сумму всех делителей числа s, которые меньше его половины. Если s2 станет равным k, то числа k и s выводятся на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы