Câu hỏi:

17/10/2022 2,158

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.

Siêu phẩm 30 đề thi thử THPT quốc gia 2024 do thầy cô VietJack biên soạn, chỉ từ 100k trên Shopee Mall.

Mua ngay

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

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

Quảng cáo

book vietjack

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Câu 1:

Em hãy cho biết đoạn chương trình sau thực hiện công việc gì:

s = 0

i = 0

while s < 2:

i = i + 1

s = s + 1/i

print("Giá trị i cần tìm = ", i)

Xem đáp án » 17/10/2022 4,143

Câu 2:

Em hãy cho biết kết quả thực hiện hai đoạn chương trình sau:

a)

s = 0

for i in range(1, 11):

s = s + i

print(s)

Xem đáp án » 17/10/2022 2,459

Câu 3:

b)

s = 0

i = 1

while i < 11:

s = s + i

i = i + 1

print(s)

Xem đáp án » 17/10/2022 1,973

Câu 4:

b)

i = 5

while i < 5 :

print(1/(i + 2), end = " ")

i = i + 1

Xem đáp án » 17/10/2022 1,161

Câu 5:

Em hãy sử dụng câu lệnh lặp while để thay thế câu lệnh for trong đoạn chương trình sau:

s = 0

for i in range(5,11):

s = s + i*i

print(s)

Xem đáp án » 17/10/2022 1,127

Câu 6:

Đoạn chương trình sau thực hiện công việc gì? Khi nào vòng lặp kết thúc?

x = 1

while x > 0:

x = int(input("Thu nhập của hộ tiếp theo: "))

Xem đáp án » 17/10/2022 985

Bình luận


Bình luận