kuharchuks
?>

Используя табличный редактор Excel, в диапазоне ячеек A1:E3 создайте копию, приведенной ниже таблицы.

Информатика

Ответы

Daletskaya982

def check_perfect(number:int, dividers = []):

for i in range(1, number):

 if number%i == 0:

  dividers.append(i)

if sum(dividers) == number:

 return 1

def get_div(num, div = []):

for i in range(1, num):

 if num%i == 0:

  div.append(i)

return div

def main():

number = int(input())

if check_perfect(number):

 print(' '.join(str(num) for num in get_div(number)))

else:

 print(0)

if __name__ == '__main__':

main()

Объяснение:

На случай, если сайт сломает табуляции в коде (А он их сломает), ниже представлен скриншот оригинала кода. Программа протестирована.


совершенным называется число, равное сумме всех своих делителей, меньших его самого (например, число
veronica1344

...А если интересует решение на классическом Паскале, предлагаю просто поддерживать текущее, предыдущее и пред-предыдущее значения в ряду, и в цикле обновлять ответ.

Обрати внимание! longint может хранить значения только до 2^{31}-1, поэтому конкретно в этой программе вывод будет достоверным только для N ≤ 46. Ты можешь сделать текущую, предыдущую и пред-предыдущую переменные типа int64, и тогда максимальное значение N возрастёт до 92. Для бОльших N тебе придётся писать длинное сложение.


Код

var

i, n, pred, predpred, cur: longint;

begin

read(n);

if n = 1 then writeln(1)

else if n = 2 then writeln('1 1')

else write('1 1 ');

if n < 3 then exit;

pred := 1;

predpred := 1;

for i := 3 to n do

begin

 cur := pred + predpred;

 write(cur, ' ');

 predpred := pred;

 pred := cur;

end;

writeln;

end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Используя табличный редактор Excel, в диапазоне ячеек A1:E3 создайте копию, приведенной ниже таблицы.
Ваше имя (никнейм)*
Email*
Комментарий*