VIẾT CHƯƠNG TRÌNH KIỂM TRA SỐ CHÍNH PHƯƠNG

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 . . .

Bạn đang xem: Viết chương trình kiểm tra số chính phương

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ố.

Xem thêm: Và Em Biết Anh Sẽ Quên Hết Những Bài Tình Ca, Một Thời Đã Xa

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 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.

Xem thêm:

// Hàm kiểm tra số chính phươngbool isSquareNumber(int a){if(aCách 2: Sử dụng hàm sqrt() tuy nhiên bạn phải khai báo thư viện math

// Khai báo thư viện math: includebool checkSquareNumber(int n){if(n

4. Tìm số chính phương trong mảng một chiều

Có rất nhiều bài toán xoay quanh chủ để SCP này. Hôm nay mình sẽ giải quyết bài toán in ra tất cả các số chính phương trong mảng một chiều có n phần tử nhé.

Cách làm rất đơn giản. Mình sẽ duyệt mảng, sau đó kiểm tra từng phần tử sử dụng hàm đã code ở bên trên. Nếu thỏa mãn thĩ sẽ in ra mành hình là oki!

Code C/C++:

// code by wpuonline.com//github: https://github.com/wpuonline.com/#include#includeusing namespace std;// Hàm kiểm tra SCP cách 1bool isSquareNumber(int a){if(a>n;}while(n>a;}printSquareNumber(a,n);return 0;}Kết quả của chạy chương trình trên: