Nhập một mảng n số nguyên hiển thị ra màn hình số chính phương lớn nhất

Thuật toán kiểm tra số chính phương trong C/C++. Cách in ra màn hình số chính phương trong mảng một chiều, tính trung bình các

1. Số chính phương là gì?

Để hiểu được bài toán, trước hết chúng ta cần hiểu số chính phương là gì?

Số chính phương hay còn gọi là square number: Là số nguyên dương có căn bậc 2 là một số nguyên, bạn có thể hiểu SCP là bình phương của một số nguyên nào đó.
Ví dụ các số: 1, 4, 9, 16, 25 . . .

Tính chấ: Số lượng các điểm tương đương với số đó đó có thể xếp thành một hình vuông. Đây chính là lý do vì sao người ta gọi nó là square number.

Một số dạng bài tập liên quan đến số chính phương:
Tìm số chính phương trong mảng C, liệt kê các số chính phương nhỏ hơn n, tìm số chính phương lớn nhất. Tính tổng các scp trong mảng một chiều.

Có thể bạn quan tâm tới các bài viết về lập trình C/C++ của mình khác!

Một bài viết chia sẻ về liệt kê các SCP nhỏ hơn N

2. Thuật toán kiểm tra số chính phương

Có hai cách để kiểm tra số chính phương, hai cách này có nội dung ý tưởng thuật toán cụ thể như sau:

Cách 1: Sử dụng vòng lặp for chạy từ i=1 tới khi i*i >n thì dừng. Nếu i*i = n thì tức là n là số nguyên tố. Nếu không có giá trị i nào thỏa mãn thì n không phải số nguyên tố.

Cách 2: Sử dụng hàm tính căn bậc e sqrt[] trong thư viện math. Bạn khai báo biến nguyên i = sqrt[n]. Nếu i*i = n thì tức là n là số chính phương.
Giải thích: i = sqrt[n] sẽ là một số nguyên. Nếu n không phải là số chính phương thì sqrt của nó sẽ bị làm tròn thành số nguyên vậy sau đó bình phương i sẽ là một số khác n.

Nếu như n < 1 thì n sẽ không phải là số chính phương. Điều kiện này sẽ giúp code của bạn hoàn chỉnh hơn.

3. Code hàm kiểm tra số chính phương C/C++

Bạn có thể xây dựng thành hàm kiểm tra số chính phương để dễ sử dụng trong các bài toán một cách dễ dàng nhất. Dựa vào ý tưởng mình đưa ra ở trên. Mình sẽ code thành hàm kiểm tra như sau:

Cách 1: Ở đây mình viết hàm kiểu bool [hàm trả về kiểu đúng, sai] và áp dụng đúng tư tưởng của cách 1 ở bên trên.

// Hàm kiểm tra số chính phương bool isSquareNumber[int a]{ if[a

Chủ Đề