Чтобы найти сумму всех делителей числа в C++, можно использовать различные методы. Вот несколько подходов:
Метод 1: грубый перебор
Один простой метод — перебрать все числа от 1 до заданного числа и проверить, является ли оно множителем. Если да, прибавьте его к текущей сумме. Вот пример реализации:
#include <iostream>
int sumOfFactors(int number) {
int sum = 0;
for (int i = 1; i <= number; ++i) {
if (number % i == 0) {
sum += i;
}
}
return sum;
}
int main() {
int number = 12;
int result = sumOfFactors(number);
std::cout << "Sum of factors of " << number << " is " << result << std::endl;
return 0;
}
Метод 2: оптимизированный подход
Более эффективный подход предполагает итерацию только до квадратного корня из заданного числа. Поскольку факторы существуют парами (за исключением полных квадратов), мы можем найти один фактор и соответствующую ему пару одновременно. Вот пример реализации:
#include <iostream>
int sumOfFactors(int number) {
int sum = 0;
for (int i = 1; i * i <= number; ++i) {
if (number % i == 0) {
sum += i;
if (i != number / i) {
sum += number / i;
}
}
}
return sum;
}
int main() {
int number = 12;
int result = sumOfFactors(number);
std::cout << "Sum of factors of " << number << " is " << result << std::endl;
return 0;
}