Bài 27
Đề bài: Nhập n. Tìm tat ca số hoan hao (perfect number) không vuot qua n.
So hoan hao là số bang tong tat ca uoc thuc su của no.
Ví dụ: n = 500
Kết quả:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248
Đăng nhập để giáo viên có thể giao bài và nhận bài nộp của bạn.
Câu trả lời
n = int(input("Nhap n: "))
def la_hoan_hao(so):
if so < 2:
return False
tong_uoc = 1
for i in range(2, int(so**0.5) + 1):
if so % i == 0:
tong_uoc += i
if i != so // i:
tong_uoc += so // i
return tong_uoc == so
print(f"\nCac so hoan hao <= {n}:")
dem = 0
for so in range(2, n + 1):
if la_hoan_hao(so):
uoc = [i for i in range(1, so) if so % i == 0]
print(f" {so} = {' + '.join(map(str, uoc))}")
dem += 1
if dem == 0:
print(" Khong co so hoan hao nao")