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ó

678

Với Giải Câu 21.14 trang 45 SBT Tin học 10 trong Bài 21: Câu lệnh lặp while Sách bài tập Tin học 10 Kết nối tri thức hay nhất, chi tiết sẽ giúp học sinh dễ dàng làm bài tập trong 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â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

Từ khóa :
Giải bài tập
Đánh giá

0

0 đánh giá