21.14. Số hoàn hảo là số tự nhiên có giá trị bằng tổng các ước thực sự của nó (các ước nhỏ hơn chính nó). Ví dụ một vài số hoàn hảo:
6: 1 + 2 + 3 = 6
28: 1 + 2 + 4 + 7 + 14 = 28
496: 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 = 496
8128: 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064 = 8128
Em hãy viết chương trình xác định số hoàn hảo đầu tiên lớn hơn số tự nhiên n được nhập vào từ bàn phim.
Bài Làm:
Chương trình có thể viết như sau:
# Số hoàn hảo > n cho trước
n = int(input("Nhập giá trị của n: "))
so_hoanhao = n + 1
tim ra = False
while tim_ra == False:
tong_uocso = 0
for i in range(1,so_hoanhao):
if so_hoanhao%i==0: # i là ước số
tong_uocso=tong_uocso+i
if tong_uocso == so_hoanhao :
tim_ra = True
print( "Số hoàn hảo đầu tiên lớn hơn ", n, " là ", so_hoanhao)
else:
so_hoanhao = so_hoanhao + 1