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)
Console.WriteLine($"number = {number}, sum = {sum}");
return sum == number; //зачем выдумывать нолики и единички если давно придуманы буленовские переменные
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
Verified answer
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; //зачем выдумывать нолики и единички если давно придуманы буленовские переменные
}
}