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ó)

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ự

Câu hỏi cùng chủ đề

Xem tất cả