Как написать программу на 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, не используя массивы. Этот подход эффективен для решения данной задачи.