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ó)
124
20/01/2024
Câu 21.14 trang 45 SBT Tin học 10: 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 phím.
Trả lời
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
Xem thêm các bài giải SBT Tin học lớp 10 Kết nối tri thức hay, chi tiết khác:
Bài 19: Câu lệnh rẽ nhánh If
Bài 20: Câu lệnh lặp For
Bài 21: Câu lệnh lặp While
Bài 22: Kiểu dữ liệu danh sách
Bài 23: Một số lệnh làm việc với dữ liệu danh sách
Bài 24: Xâu kí tự