logo

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

icon_facebook

Bài 21. Câu lệnh lặp While

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 ngắn nhất

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

icon-date
Xuất bản : 13/06/2024 - Cập nhật : 13/06/2024

Câu hỏi thường gặp

Đánh giá độ hữu ích của bài viết

😓 Thất vọng
🙁 Không hữu ích
😐 Bình thường
🙂 Hữu ích
🤩 Rất hữu ích
image ads