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()
Объяснение:
На случай, если сайт сломает табуляции в коде (А он их сломает), ниже представлен скриншот оригинала кода. Программа протестирована.
B1 = E3*7
C1 = F3*7
A2 = D4*7
A3 = D5*7
Объяснение:
Формула в ячейке A1 содержит относительную ссылку (D3), которая будет изменяться при копировании.
При копировании в другой столбец будет изменяться буква столбца ссылки на столько букв на сколько столбцов сдвинулись относительно ячейки откуда копируется формула.
При копировании в ячейку B1, мы сдвинулись на 1 столбец относительно ячейки A1, поэтому заменяем в ссылке D на E (следующую букву в алфавите)
При копировании в ячейку C1, мы сдвинулись на 2 столбца относительно ячейки A1, поэтому заменяем в ссылке D на F (букву в алфавите отстоящую от буквы D на 2 буквы)
При копировании в другую строку будет изменяться номер строки ссылки на число строк на которые сдвинулись относительно ячейки откуда копируется формула.
При копировании в ячейку A2, мы сдвинулись на 1 строку относительно ячейки A1, поэтому заменяем в ссылке 3 на 4 (3 + 1 = 4)
При копировании в ячейку A3, мы сдвинулись на 2 строки относительно ячейки A1, поэтому заменяем в ссылке 3 на 5 (3 + 2 = 5)
Если копировать одновременно сдвигаясь и по столбцам и по строкам, то ссылка будет изменяться целиком, как написано выше
Задание 1:
10 rem Площадь круга и квадрата
20 input "Введите площадь круга"; SR
30 input "Введите площадь квадрата"; SK
40 a=sqr(SK)
50 c=sqr(a^2 * 2)
60 pi=3.1415926
70 r=sqr(SR/pi)
80 if a>=r then print "Круг поместится в квадрат":goto 110
90 if r>=c then print "Квадрат поместится в круг":goto 110
100 print "Фигуры не поместятся друг в друга"
110 print "---------------------------------":print
120 end
Задание 2:
10 rem Три числа
20 print "Введите три числа"
30 input a, b, c
35 if a = b and b = c then print "Числа равны между собой" : goto 100
40 if a > b then swap a, b
50 if b > c then swap b, c
60 if a > b then swap a, b
70 if a > c then swap a, c
80 print "Минимум ", a
90 print "Максимум ", c
100 end
Задание 3:
10 rem Первая цифра - чётная?
20 input "Введите двузначное число ", a
30 if a < 10 or a > 99 then 20
33 me$ = "Начинается с чётной"
36 mo$ = "Начинается с нечётной"
40 if int(a / 10) mod 2 = 0 then print me$ else print mo$
50 end
Задание 4:
10 rem Треугольник
20 input "Введите длину стороны а ", a
30 input "Введите длину стороны b ", b
40 input "Введите длину стороны c ", c
45 print "Составить такой треугольник ";
50 if a+b>c and a+c>b and b+c>a then 70
60 print "нельзя"
65 goto 90
70 print "можно"
83 if a=b and b = c then print "Треугольник равносторонний" : goto 90
86 if a=b or a=c or b=c then print "Треугольник равнобедренный"
90 end