помогите, пожалуйста, очень нужно! Паскаль. Абсолютным называется число, одинаковое сумме всех

Помогите, пожалуйста, очень необходимо! Паскаль. Абсолютным называется число, одинаковое сумме всех собственных делителей, наименьших его самого (к примеру, число 6=1+2+3). Напишите программку, которая вводит натуральное число N и определяет, является ли число N абсолютным.

Входные данные
Входная строчка содержит естественное число N .

Выходные данные
Если число N абсолютное, программка обязана вывести в одну строку через пробел все делители этого числа, меньшие N . Если число неидеальное, программка обязана вывести 0.

Задать свой вопрос
Данил Максятин
Вы пренебрегали указать ограничение на N, а это главно
Софья Риффель
в дано этого нет
Юленька Градюшко
Вы должны разуметь, что нам нет дело до каких-то Ваших "дано", Вы даете задание не по алгебре, где число может быть любым, а по информатике, где представление чисел ограничено. И в языках программирования много различных типов данных как раз для того, чтоб выбрать их их подходящий у задачке. Так что определяйтесь.
Valerija Janovec
в учебнике нет ограничения, означает, тип данных хоть какой)
Максимка Сапонько
integer, я думаю
Сергей Мыкытюк
integer в языках программирования имеет максимальное значение 2147483647. Глядим в Веб и лицезреем, что в спектре от 1 до 2147483647 имеются только числа 6, 28, 496, 8128 и 33 550 336. Проще их забить в программке константами и введенное число число сравнивать с ними. Прытко и отлично)))
Даниил Гологорский
да, быстро, но в задании ведь необходимо их найти(а не вводить константами)... Сможете, пожалуйста, написать эту программку с типом integer?
Егор Полтарыгин
Нет, их не нужно отыскать. Сказано "определяет, является ли число N совершенным." А как именно определяет, хоть языком лижет - про то не сказано.
1 ответ

PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018

Внимание! Если программа не работает, обновите версию!

function СовершенноеЧисло(n: integer): boolean;

begin

 var (s,d,n2) := (1,2,n div 2);

 while d lt;= n2 do

 begin

   if n mod d = 0 then s += d;

   Inc(d)

 end;

 Result := n = s

end;


begin

 if СовершенноеЧисло(ReadInteger) then Print('Абсолютное')

 else Print('Несовершенное')

end.

Пример

33550336

Абсолютное

Яритенко Кирилл
"Если число N абсолютное, программка должна вывести в одну строку через пробел все делители этого числа, меньшие N." и где у Вас вывод делителей?)
Sasha Muhmenskij
Не увидел. Прочел только это: "Напишите программку, которая вводит натуральное число N и определяет, является ли число N совершенным." Модератор увидит, даст ответ на исправление, допишу, это легко. А на данный момент не могу. Ответ можно верховодить не позже 2-ух часов после того, как он дан.
Леонид Гопинков
Ну или если срочно, сделайте вопрос за минимум баллов, сколько там, 2 надобно дать что ли... я там дам новый ответ
Злата Барамия
Нет, спасибо, у меня ведь все равно не работают Ваши программки..
Ирина Раскидаева
Ну, как понимаете)
Василиса Гомзо
В последующие раз указывайте диалект языка
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт