Home > Python > Python căn bản > Kiểm tra một số có phải là số hoàn hảo bằng Python

Kiểm tra một số có phải là số hoàn hảo bằng Python

Hãy viết chương trình kiểm tra một số có phải là số hoàn hảo không bằng Python, đây là bài tập cơ bản giúp bạn luyện tư duy lập trình Python.

Bài giải

-------------------- ######## --------------------

Để giải bài này thì trước tiên bạn phải tìm hiểu một chút về khái niệm số hoàn hảo.

Gọi N là một số hoàn hảo thì: Tổng các ước từ 1 -> (N - 1) sẽ bằng N.

Ví dụ: 6 là số hoàn hảo vì tổng các ước từ 1 đến 5 là (1 + 2 + 3) = 6.

Như vậy với bài này ta sẽ giải bằng ngôn ngữ Python như sau:

Bước 1: Yêu cầu người dùng nhập số cần kiểm tra bằng hàm input()

Bước 2: Lặp từ 1 đến N - 1, tính tổng tất cả các ước số của N trong khoảng đó.

Bước 3: Nếu tổng bằng N thì N chính là số hoàn hảo.

Bài giải như sau:

# HỌC PYTHON TẠI FREETUTS.NET
# TÁC GIẢ: CƯỜNG NGUYỄN

print("Chương trình đăng tại freetuts.net!")

print("Nhập vào số N lớn hơn 0: ")

n = int(input())
tong = 0

for i in range(1, n):
    if (n % i == 0):
        tong += i

if (tong == n):
    print(n, " là số hoàn hảo")
else:
    print(n, " không phải là số hoàn hảo")

Chạy chương trình lên và mình nhập số 6 vào thì chương trình sẽ báo đây là số hoàn hảo, vì vậy thuật toán chúng ta đã giải hoàn toàn đúng.

ket qua bai tap 4 JPG

Nguồn: freetuts.net

Danh sách bài tập Python cơ bản
Kiểm tra dữ liệu là number hay string bằng Python
Tính tổng S(n) = 1 + 2 + 3 + … + n bằng Python
Tính tổng S(n) = 1^2 + 2^2 + … + n^2 bằng Python
Tính tổng S(n) = 1 + ½ + 1/3 + … + 1/n bằng Python
Tính tổng S(n) = ½ + ¼ + … + 1/2n bằng Python
Tính tổng S(n) = 1/3 + 1/5 + … + 1/(2n + 1)
Liệt kê tất cả các ước số của số nguyên dương n bằng Python
Tính tổng tất cả các ước số của số nguyên dương N bằng Python
Tìm ước số lẻ lớn nhất của một số bằng Python
Kiểm tra một số có phải là số hoàn hảo bằng Python
Kiểm tra số chính phương bằng Python
Kiểm tra số nguyên tố bằng Python
Đảo ngược một số bằng Python
In ra từng ký tự của một số bằng Python
Giải phương trình bậc nhất một ẩn bằng Python (ax + b = 0)
Giải phương trình bậc hai một ẩn bằng Python (ax^2 + bx + c = 0)

Xem thêm

BÀI VIẾT

notice png LIST home png HOME hot gif BÁO
LỖI
top png TOP