Информатика, вопрос задал moonlight0979 , 9 месяцев назад

Решите задачу на на c++:
Задано целое натуральное число n. Выведите простой делитель числа n с наибольшей суммой цифр. Гарантируется, что такой делитель будет ровно один..

Ответы на вопрос

Ответил oleg6571
0

Ответ:

#include <iostream>

// Функция для вычисления суммы цифр числа

int sumOfDigits(int num) {

   int sum = 0;

   while (num > 0) {

       sum += num % 10;

       num /= 10;

   }

   return sum;

}

int main() {

   int n;

   std::cout << "Введите натуральное число n: ";

   std::cin >> n;

   // Поиск простого делителя с наибольшей суммой цифр

   int maxSum = 0;

   int maxDivisor = 1;

   for (int i = 2; i <= n; ++i) {

       if (n % i == 0) {

           int currentSum = sumOfDigits(i);

           if (currentSum > maxSum) {

               maxSum = currentSum;

               maxDivisor = i;

           }

       }

   }

   std::cout << "Простой делитель с наибольшей суммой цифр: " << maxDivisor << std::endl;

   return 0;

}

Программа сначала запрашивает натуральное число n, а затем находит простой делитель этого числа с наибольшей суммой цифр.

Новые вопросы