icantech
Lập trình Python
1093
25/10/2023

Số chính phương là gì? Kiểm tra số chính phương bằng Python

Có nhiều loại số "đẹp" trong toán học, mà mỗi loại số đều có tính chất và ứng dụng riêng. Một trong những loại số phổ biến là số chính phương, đây là những số mà căn bậc hai của chúng là một số tự nhiên. Ví dụ, 4, 9, và 16 là các số chính phương. Trong bài viết này sẽ cùng ICANTECH tìm hiểu về số chính phương cũng như cách kiểm tra số chính phương Python nhé!

1. Tổng quan về số chính phương

Số chính phương, còn được gọi là số bình phương hoàn hảo, là một số tự nhiên mà có căn bậc hai là một số tự nhiên khác. Nghĩa là, một số nguyên dương n được coi là số chính phương nếu có một số nguyên dương a sao cho a^2 = n. Ví dụ về các số chính phương là 1, 4, 9, 16, 25, 36…

Số chính phương thường được sử dụng trong nhiều lĩnh vực toán học và khoa học công nghệ như lập trình.

so-chinh-phuong

1.1. Hàm kiểm tra số chính Phương Python 

Có nhiều cách để kiểm tra số chính phương trong Python.

Chúng ta sử dụng một vòng lặp để kiểm tra từ 0 đến number để xem có một số nào đó mà bình phương bằng number không. Nếu tìm thấy, chúng ta trả về True, ngược lại trả về False. 

def is_perfect_square(number):

    for i in range(0, number):

        if i * i == number:

            return True

    return False

 

# Kiểm tra một số ví dụ

number = 25

if is_perfect_square(number):

    print(f"{number} là số chính phương.")

else:

    print(f"{number} không phải là số chính phương.")

Kết quả:

25 là số chính phương.

Hoặc Lặp i chạy từ 0 đến khi i*i > n. Nếu i*i == n tức n là số chính phương, kết thúc chương trình. Nếu i*i > n thì kết luận n không phải số chính phương.

def is_perfect_square(n):

    i = 0

    while i * i < n:

        i += 1

    if i * i == n:

        print(f"{n} là số chính phương.")

    else:

        print(f"{n} không phải là số chính phương.")

 

n = 25  # Thay đổi giá trị của number tại đây

is_perfect_square(n)

Kết quả:

25 là số chính phương.

2. Một số bài toán áp dụng kiểm tra số chính phương trong Python

2.1. Liệt kê các số chính phương nhỏ hơn n Python

Sử dụng một vòng lặp for để kiểm tra từng số từ 1 đến n-1. Nếu bình phương của số đó vẫn nhỏ hơn n, chúng ta thêm bình phương của nó vào danh sách perfect_squares.

Nếu bình phương của số vượt quá n, chúng ta dừng vòng lặp bằng break. Kết quả cuối cùng là danh sách các số chính phương nhỏ hơn n.

Dưới đây là chương trình liệt kê các số chính phương nhỏ hơn n trong Python:

def list_perfect_squares(n):

    perfect_squares = []

    for i in range(1, n):

        if i * i < n:

            perfect_squares.append(i * i)

        else:

            break

    return perfect_squares

 

n = 100  # Thay đổi giá trị của n theo nhu cầu của bạn

result = list_perfect_squares(n)

print(f"Các số chính phương nhỏ hơn {n} là: {result}")

Kết quả:

Các số chính phương nhỏ hơn 100 là: [1, 4, 9, 16, 25, 36, 49, 64, 81]

Như vậy, ICANTECH đã hướng dẫn bạn liệt kê các số chính phương Python trong ví dụ trên đây.

2.2. Tính tổng các số chính phương nhỏ hơn n trong Python

Chúng ta sử dụng hàm is_perfect_square để kiểm tra xem một số có phải là số chính phương hay không.

Sử dụng một vòng lặp để duyệt qua các số từ 1 đến n-1, nếu số đó là số chính phương thì thêm giá trị của số đó vào tổng total. 

Cuối cùng, chúng ta trả về tổng total.

Dưới đây là chương trình tính tổng các số chính phương Python:

def is_perfect_square(number):

    return int(number ** 0.5) ** 2 == number

 

def sum_of_perfect_squares(n):

    total = 0

    for i in range(1, n):

        if is_perfect_square(i):

            total += i

    return total

 

n = 100  # Thay đổi giá trị của n theo nhu cầu của bạn

result = sum_of_perfect_squares(n)

print(f"Tổng của các số chính phương nhỏ hơn {n} là: {result}")

Kết quả:

Tổng của các số chính phương nhỏ hơn 100 là: 285

3. Lời Kết

Như vậy, ICANTECH đã cùng bạn tìm hiểu về số chính phương và cách kiểm tra số chính phương Python. Bạn có biết loại số “đẹp” nào nữa không? Nếu có hãy chia sẻ cho mọi người xung quanh biết và cùng ICANTECH khám phá các loại số trong các bài viết tiếp theo nhé!

Nếu bạn đang quan tâm đến học lập trình thì hãy tham khảo ngay các khóa học lập trình tại ICANTECH nhé

Nguồn ảnh: ICANTECH.

Share
Tags
Lập trình Python

Bài tương tự