Bài tập

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

Huy Erick

Số chính phương, hay còn được gọi là số bình phương hoàn hảo, là một số tự nhiên mà căn bậc hai của nó cũng là một số tự nhiên khác. Nghĩa là, một số...

Số chính phương, hay còn được gọi là số bình phương hoàn hảo, là một số tự nhiên mà căn bậc hai của nó cũng là một số tự nhiên khác. Nghĩa là, một số nguyên dương n được xem là số chính phương nếu tồn tại 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ệ, bao gồm cả lập trình.

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

Trong Python, có nhiều cách để kiểm tra xem một số có phải là số chính phương hay không. Một trong những cách đó là sử dụng một vòng lặp để kiểm tra từ 0 đến số đó để xem có một số nào đó mà bình phương bằng số đó hay không. Nếu tìm thấy, hàm sẽ trả về True, ngược lại sẽ 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, bạn có thể sử dụng một vòng lặp để kiểm tra từ 0 đến khi ii > n. Nếu ii == n, tức là n là số chính phương, chương trình sẽ dừng. Nếu i*i > n, tức là n không phải là 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. Á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

Bạn có thể 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ố đó nhỏ hơn n, bạn có thể thêm bình phương của số đó vào danh sách perfect_squares. Nếu bình phương của số vượt qua n, bạn có thể kết thúc vòng lặp.

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]

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

Bạn có thể 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, trả về tổng total.

Dưới đây là chương trình để tính tổng các số chính phương nhỏ hơn n trong 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. Kết luận

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

Nếu bạn quan tâm đến việc học lập trình, hãy tham khảo các khóa học lập trình tại ICANTECH.

Nguồn ảnh: ICANTECH.

1