Вопрос задан 28.07.2023 в 03:23. Предмет Информатика. Спрашивает Савчук Вася.

Вводится последовательность из N целых чисел. Найти максимальное совершенное число в

последовательности, если таких несколько, вывести их количество (функцией оформить проверку числа: результатом функции будет 1 – число совершенное, 0 - нет).(C#)
0 0
Перейти к ответам

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

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

using System;



//6,


//28,


//496,


//8128,


//33550336



internal class Program {


   private static void Main() {


       var max = 0L;


       var quantity = 0;



       Console.WriteLine("Введите последовательность. Для окончания введите ноль");


       do {


           var n = long.Parse(Console.ReadLine());


           if (n == 0)


               break;



           if (max == n)


               quantity++;


           else if (n > max && IsIdealNumber(n)) {


               max = n;


               quantity = 1;


           }


       } while (true);



       Console.WriteLine($"max = {max}, кол-во = {quantity}");


       Console.ReadKey();


   }



   private static bool IsIdealNumber(long number) {


       var sum = 1L;



       for (var i = 2L; i <= number / 2; i++) {


           if (number % i != 0)


               continue;


           sum += i;


           if (sum > number || number < 0)


               break;


       }


       Console.WriteLine($"number = {number}, sum = {sum}");


       return sum == number; //зачем выдумывать нолики и единички если давно придуманы буленовские переменные


   }


}


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

Для решения этой задачи вам потребуется написать функцию для проверки числа на совершенность и затем осуществить поиск максимального совершенного числа в последовательности. Вот пример кода на C#:

csharp
using System; class Program { // Функция для проверки числа на совершенность static int IsPerfectNumber(int num) { int sum = 1; // Начинаем сумму с 1, потому что 1 всегда делит число нацело for (int i = 2; i * i <= num; i++) { if (num % i == 0) { sum += i; if (i * i != num) // Если число не является квадратом i, добавляем еще один делитель { sum += num / i; } } } return (sum == num) ? 1 : 0; // Возвращаем 1, если число совершенное, и 0 в противном случае } static void Main(string[] args) { Console.Write("Введите количество чисел N: "); int N = int.Parse(Console.ReadLine()); int[] sequence = new int[N]; for (int i = 0; i < N; i++) { Console.Write($"Введите число {i + 1}: "); sequence[i] = int.Parse(Console.ReadLine()); } int maxPerfectNumber = int.MinValue; int countPerfectNumbers = 0; foreach (int num in sequence) { if (IsPerfectNumber(num) == 1) { if (num > maxPerfectNumber) { maxPerfectNumber = num; countPerfectNumbers = 1; } else if (num == maxPerfectNumber) { countPerfectNumbers++; } } } if (maxPerfectNumber != int.MinValue) { Console.WriteLine($"Максимальное совершенное число: {maxPerfectNumber}"); Console.WriteLine($"Количество совершенных чисел: {countPerfectNumbers}"); } else { Console.WriteLine("В последовательности нет совершенных чисел."); } } }

В данном коде мы сначала создаем функцию IsPerfectNumber, которая проверяет, является ли число совершенным. Затем в Main мы вводим последовательность чисел и находим максимальное совершенное число, а также подсчитываем количество совершенных чисел в последовательности. Результат выводится на экран.

0 0

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

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

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

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