Как написать программу на C++, которая найдет все пары дружественных чисел, меньших 50000, не используя массивы? Два натуральных числа считаются дружественными, если каждое из них равно сумме делителей другого числа, исключая само число в качестве делителя.
Информатика 10 класс Алгоритмы и программирование программа на C++ дружественные числа делители натуральные числа меньше 50000 без массивов алгоритм поиска информатика задачи на программирование C++ задачи
Чтобы написать программу на C++, которая находит все пары дружественных чисел меньше 50000, не используя массивы, мы можем следовать следующим шагам:
Сначала создадим функцию, которая будет вычислять сумму делителей числа, исключая само число. Эта функция будет принимать одно целое число в качестве аргумента и возвращать сумму его делителей.
Затем мы будем перебирать все числа от 1 до 49999 и для каждого числа будем находить его сумму делителей. После этого проверим, является ли найденная сумма делителей другим числом, и соответствует ли оно условиям для дружественных чисел.
Если мы находим пару дружественных чисел, мы выводим их на экран.
Теперь давайте посмотрим на пример кода, который реализует описанные шаги:
#include <iostream>
using namespace std;
// Функция для вычисления суммы делителей
int sumOfDivisors(int n) {
    int sum = 0;
    for (int i = 1; i <= n / 2; i++) {
        if (n % i == 0) {
            sum += i;
        }
    }
    return sum;
}
int main() {
    for (int i = 1; i < 50000; i++) {
        int sum1 = sumOfDivisors(i);
        // Проверяем, чтобы сумма делителей была больше текущего числа
        if (sum1 > i && sum1 < 50000) {
            int sum2 = sumOfDivisors(sum1);
            // Проверяем, являются ли числа дружественными
            if (sum2 == i) {
                cout << "Дружественные числа: " << i << " и " << sum1 << endl;
            }
        }
    }
    return 0;
}
Объяснение кода:
iostream для работы с вводом и выводом.sumOfDivisors, которая принимает число и возвращает сумму его делителей.main мы перебираем все числа от 1 до 49999.Таким образом, мы можем найти все пары дружественных чисел меньше 50000, не используя массивы. Этот подход эффективен для решения данной задачи.