Kiểm tra số chính phương trong C/C++ – Check Square number

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 tất cả 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 những điểm tương tự với số đó đó hoàn toàn có thể xếp thành một hình vuông vắn. Đây chính là nguyên do vì sao người ta gọi nó là square number .
so chinh phuong trong c++

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 chăm sóc tới những 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 sáng tạo độc đáo thuật toán đơn cử 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 hoàn toàn có thể kiến thiết xây dựng thành hàm kiểm tra số chính phương để dễ sử dụng trong những bài toán một cách thuận tiện nhất. Dựa vào ý tưởng sáng tạo 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<1)
		return false;
	int i=1;
	while(i*i<=a){
		if(i*i==a)
			return true;
		i++;
		}
	return false;
}

Cá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: include

bool checkSquareNumber(int n){
	if(n<1)
		return false;
	int i = sqrt(n);
	if(i*i==n)
		return true;
	return false; // nếu không là scp return false
}

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ẽ xử lý bài toán in ra tổng thể những số chính phương trong mảng một chiều có n thành phần nhé .
Cách làm rất đơn thuần. Mình sẽ duyệt mảng, sau đó kiểm tra từng thành phần sử dụng hàm đã code ở bên trên. Nếu thỏa mãn nhu cầu thĩ sẽ in ra mành hình là oki !
Code C / C + + :

// code by duongdinh24.com
//github: https://github.com/duongdinh24/

#include
#include
using namespace std;

// Hàm kiểm tra SCP cách 1
bool isSquareNumber(int a){
	if(a<1)
		return false;
	int i=1;
	while(i*i<=a){
		if(i*i==a)
			return true;
		i++;
		}
	return false;
}

// Hàm kiểm tra SCP cách 2
bool checkSquareNumber(int n){
	if(n<1)
		return false;
	int i = sqrt(n);
	if(i*i==n)
		return true;
	return false;
}

// Ham in ra cac so chinh phuong trong mang
void printSquareNumber(int a[], int n){
	cout<<"Cac so chinh phuong trong mang: \n";
	for(int i=0;i>n;
	}
	while(n<=0);
	
	int a[n]; // Khai bao mang a co n phan tu
	
	cout<<"Nhap mang: "<>a[i];
	}
	
	printSquareNumber(a,n);
	return 0;
}

Kết quả của chạy chương trình trên:

kiem tra so chinh phuong trong cỞ trong ví dụ này những số 1, 4 và 25 là số chính phương .
Ok, bài viết của mình đến đây là hết rồi, cảm ơn bạn đã chăm sóc bài viết nhé !