Предмет: Информатика, автор: avtobusyitrollejbusy

Знайти натуральне число від 1 до 10000 з максимальною сумою дільників.
МОВА C++​

Ответы

Автор ответа: flash77779
1

Ось приклад того, як ви могли б вирішити цю проблему на C++:

#include <iostream>

#include <cmath>

using namespace std;

int main() {

   int maxSum = 0, maxNum = 0;

   for (int i = 1; i <= 10000; i++) {

       int sum = 0;

       for (int j = 1; j <= sqrt(i); j++) {

           if (i % j == 0) {

               sum += j;

               if (j != i / j) {

                   sum += i / j;

               }

           }

       }

       if (sum > maxSum) {

           maxSum = sum;

           maxNum = i;

       }

   }

   cout << "The number with the maximum sum of divisors is: " << maxNum << endl;

   cout << "The sum of its divisors is: " << maxSum << endl;

   return 0;

}

Ця програма використовує вкладений цикл для перебору кожного числа від 1 до 10000 і знаходження суми його дільників. Сума дільників обчислюється за формулою: sum = sum + j + i / j, де j - дільник i. функція sqrt використовується для оптимізації обчислень шляхом перевірки тільки дільників з точністю до квадратного кореня з i. після кожної ітерації програма перевіряє, чи більше сума дільників поточної максимальної суми, і якщо так, оновлює максимальну суму і відповідне число. Кінцевим результатом є число з максимальною сумою дільників і його сумою.

Похожие вопросы
Предмет: Математика, автор: egorgorkovets00
Предмет: Русский язык, автор: milamak1007