** языке паскаль абс написать программу (Не глушилку , а нормальную программу)(желательно...

0 голосов
33 просмотров

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

Формат входных данных

Вводится одно целое число N (1≤N≤100000).

Формат выходных данных

Требуется вывести все совершенные числа, меньшие заданного числа N.
Числа следует выводить в порядке возрастания, разделяя пробелами.

Примеры

входные данные выходные данные
7 6



Информатика (3.4k баллов) | 33 просмотров
0

А что такое "глушилка"?

0

без формулы или циклов просто через ифы указать значения совершенных чисел

Дан 1 ответ
0 голосов

Ну Хьюстон почти все уже сделал. Я чуток подправил
var i,j,s,n:integer; 
begin
readln(n);
for i := 1 to n-1 do
  begin
  s:=0;
  for j := 1 to (i div 2) do
     if i mod j=0 then s:=s+j;
  if s=i then write(i,' ');
  end;
end.

0

У тебя же в условии написано "с помощью циклов и ifов". Что не так?

0

Хьюстон, ты отметил нарушение, считая мое решение плагиатом? Ну так у тебя число N вообще в программе не вводилось, и поиск делителей делалось почти до самого N, а достаточно только до его половины. В данном случае это критично, т.к. объем обрабатываемых данных очень велик и программа выполняется достаточно долго (на моей машине более минуты). Так что это не плагиат. Ну а то, что я использовал твой костяк программы, так я об этом написал, хотя мог бы написать с нуля, с другими переменными.