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ài viết này được đăng tại [free tuts .net]
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.
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)