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â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.

Lời giả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 sách bài tập Tin học lớp 10 Kết nối tri thức hay, ngắn gọn khác:


Giải bài tập lớp 10 Kết nối tri thức khác