Kiểm tra số hoàn hảo trong Python | Laptrinhcanban.com

HOME › >>

Kiểm tra số hoàn hảo trong Python

Hướng dẫn cách kiểm tra số hoàn hảo trong python. Bạn sẽ học được cách tạo hàm kiểm tra số hoàn hảo trong python sau bài học này.

Số hoàn hảo trong python

Trong lập trình, số hoàn hảo (perfect number) là một loại số tự nhiên đặc biệt. Số hoàn hảo là số nguyên dương mà tổng các ước số dương của nó (không tính chính nó) bằng chính nó. Ví dụ về số hoàn hảo đầu tiên là 6, bởi vì 6 có các ước số dương là 1, 2 và 3, và 1 + 2 + 3 = 6.

Số hoàn hảo có một số tính chất quan trọng:

  1. Số hoàn hảo là số tự nhiên.
  2. Số hoàn hảo lớn hơn 1 (không tính chính nó).
  3. Số hoàn hảo có ít ước số dương sao cho tổng của chúng bằng chính nó.

Khái niệm số hoàn hảo trong Python cũng giống như trên. Chúng ta coi một số là số hoàn hảo trong python nếu như tổng các ước nguyên dương chính thức của nó (ngoại trừ nó) bằng chính nó.

Số hoàn hảo trong python

Đây là chìa khóa thứ giúp chúng ta có thể tìm được số hoàn hảo trong python.

Kiểm tra số hoàn hảo trong python

Để kiểm tra xem một số có phải là số hoàn hảo hay không, chúng ta cần tính tổng các ước số dương của nó và so sánh với chính nó. Nếu tổng này bằng chính số đó, thì đó là một số hoàn hảo.

Dưới đây là một ví dụ về cách kiểm tra số hoàn hảo trong Python:

def is_perfect_number(number):
if number <= 1:
return False # Số hoàn hảo phải lớn hơn 1

divisors_sum = 1 # Số 1 luôn là ước số dương của mọi số
for i in range(2, int(number ** 0.5) + 1):
if number % i == 0:
divisors_sum += i
if i != number // i:
divisors_sum += number // i

return divisors_sum == number

Trong ví dụ trên, chúng ta đã xác định một hàm is_perfect_number(number) để kiểm tra xem một số number có phải là số hoàn hảo hay không. Hàm này tính tổng các ước số dương của number bằng cách sử dụng một vòng lặp từ 2 đến căn bậc hai của number. Nếu tổng này bằng number, hàm trả về True (là số hoàn hảo); ngược lại, trả về False.

Sử dụng hàm kiểm tra số hoàn hảo

Sau khi đã xác định hàm kiểm tra số hoàn hảo, chúng ta có thể sử dụng nó để kiểm tra một số bất kỳ. Dưới đây là một ví dụ:

number1 = 28
number2 = 12

result1 = is_perfect_number(number1)
result2 = is_perfect_number(number2)

if result1:
print(f"{number1} là số hoàn hảo")
else:
print(f"{number1} không phải là số hoàn hảo")

if result2:
print(f"{number2} là số hoàn hảo")
else:
print(f"{number2} không phải là số hoàn hảo")

Kết quả sẽ là:

28 là số hoàn hảo
12 không phải là số hoàn hảo

Chúng ta có thể thay đổi giá trị của number1number2 để kiểm tra xem các số khác có phải là số hoàn hảo không.

In ra dãy số hoàn hảo bằng Python

Sử dụng hàm vừa tạo ở trên, chúng ta có thể in ra dãy số hoàn hảo bằng python.

Và dưới đây là ví dụ về chương trình nhập n in ra dãy số hoàn hảo từ 1 đến n trong Python:

def is_perfect_number(number):
if number <= 1:
return False # Số hoàn hảo phải lớn hơn 1

divisors_sum = 1 # Số 1 luôn là ước số dương của mọi số
for i in range(2, int(number ** 0.5) + 1):
if number % i == 0:
divisors_sum += i
if i != number // i:
divisors_sum += number // i

return divisors_sum == number

n = int(input(">> nhap so n: "))

for i in range(1, n):
if is_perfect_number(i):
print(i, end =" ")

Kết quả:

>> nhap so n: 10
6

>> nhap so n: 100
6 28

>> nhap so n: 1000
6 28 496

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách kiểm tra số hoàn hảo trong python rồi. Kiểm tra số hoàn hảo là một vấn đề thú vị trong lập trình và có ứng dụng trong nhiều lĩnh vực toán học và khoa học máy tính. Python cung cấp các công cụ và cú pháp đơn giản để thực hiện việc này. Bài viết này đã giới thiệu cách kiểm tra số hoàn hảo trong Python bằng cách tính tổng các ước số dương của một số và so sánh với chính nó. Hi vọng rằng thông tin này sẽ giúp bạn hiểu cách làm việc với số hoàn hảo trong Python và áp dụng nó vào các dự án của bạn.

URL Link

https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/so-trong-python/kiem-tra-so-hoan-hao-trong-python/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME  › >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.