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

Kiểm tra số chính phương C++
Kiểm tra số chính phương C++

Làm sao để kiểm tra số chính phương trong C/C++? Bài viết này sẽ giúp các bạn viết hàm kiểm tra một số có phải số chính phương hay không. Tiếp đến là hướng dẫn tìm các số chính phương trong mảng sử dụng C/C++. Nhưng trước hết, chúng ta cũng cần trình bày về bài toán và số chính phương cho các bạn chưa biết.

1. Bài toán kiểm tra số chính phương

Bài toán 1: Hãy viết chương trình nhập vào số nguyên dương n. Kiểm tra xem n có phải là số chính phương hay không? (số chính phương là số khi lấy căn bặc 2 có kết quả là nguyên). Hãy viết chương trình kiểm tra số chính phương sử dụng ngôn ngữ C/C++

Bài toán 2: Viết chương trình nhập vào một mảng số nguyên có n phần tử. Hãy tìm và in ra màn hình các số chính phương có trong mảng. Hãy viết chương trình tìm các số chính phương trong mảng sử dụng ngôn ngữ lập trình C/C++

Kiểm tra số chính phương là 1 trong những bài tập lập trình C/C++ phổ biến trong các môn học lập trình cơ bản. Để kiểm tra một số có là số chính phương hay không. Chúng ta có một vài cách để giải quyết:

  1. 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
  2. Kiểm tra kết quả của căn bậc 2 của n có phải số nguyên không. Đây là cách tối ưu hơn.

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

Nếu ta sử dụng vòng lặp(cách 1) ở trên, chúng ta sẽ code như sau:

Code bằng ngôn ngữ C:

Code bằng ngôn ngữ C++:

Output:

Với cách kiểm tra kết quả của phép khai căn của n có là số nguyên không. Chúng ta sẽ sử dụng hàm sqrt trong thư viện math.h. Đồng thời, sử dụng kỹ thuật ép kiểu để thực hiện.

Code kiểm tra chính phương viết bằng C:

Code kiểm tra số chính phương C++:

Output:

3. Tìm các số chính phương có trong mảng

Để in ra các số chính phương có trong mảng, bạn cần kiểm tra lần lượt từng phần tử có phải số chính phương không. Nếu là số chính phương thì in ra thôi.

Sau đây là code tìm và in ra các số chính phương có trong mảng 1 chiều. Các bạn có thể tham khảo:

Ouput:

4. Kết luận

Như vậy, Nguyễn Văn Hiếu Blog đã giúp các bạn tìm ra lời giải cho bài toán kiểm tra số chính phương. Cách để in ra các số chính phương có trong mảng. Hi vọng bài viết đem lại những chia sẻ hữu ích cho các bạn.

avatar
  Subscribe  
newest oldest most voted
Notify of
Hiền Vũ
Guest
Hiền Vũ

bài viết rất hay. thanks

Giang
Guest
Giang

bool scp(int n){
int sqr = sqrt(n); // dòng này phải là double hả bạn?????
return (sqr*sqr == n);
}

Mai Nguyễn
Member
Mai Nguyễn

Làm sao để xác định có là số harshad hay ko ? Nếu ko là số harshad thì tìm số harshad nhỏ nhất