Вопрос задан 05.10.2023 в 05:22. Предмет Информатика. Спрашивает Харисов Данил.

Наибольший делитель Для заданного натурального числа n выведите его наибольший делитель, отличный

от n. Входные данные Одно натуральное число n (1 < n < 2147000000). Выходные данные Выведите наибольший делитель числа n, отличный от n. На С++
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Михай Шика.

#include <locale>

#include <iostream>

#include <cstdlib>

using namespace std;

int main(int argc, char argv[]) {

setlocale(LC_ALL, "Russian");

long long int a;

int i;

cout << "Введите число" << endl;

cin >> a;

if (a <= 1) {

 cout << "Ошибка ввода" << endl;

 return 1;

}

if (a % 2 == 0) {

 cout << "Наибольший делитель: " << a / 2 << endl;

}

else {

 for (i = a / 2; i > 1 && a % i; --i);

 if (i == 1)

  cout << "Наибольший делитель: " << i << endl;

 else {

  i = a / 2;

  while (a % i != 0)

   --i;

  cout << "Наибольший делитель: " << i << endl;

 }

}

return 0;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вы можете решить эту задачу на C++ с помощью следующего кода:

cpp
#include <iostream> int main() { unsigned int n; std::cin >> n; for (unsigned int i = n - 1; i > 0; --i) { if (n % i == 0) { std::cout << i << std::endl; break; } } return 0; }

Этот код сначала считывает натуральное число n с клавиатуры. Затем он начинает итерироваться от n - 1 до 1, и находит первый делитель числа n, выводя его на экран и завершая выполнение программы с помощью оператора break. Этот делитель будет наибольшим делителем числа n, отличным от самого n.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос