Xem thêm

Số Chính Phương trong C/C++: Hướng dẫn Kiểm tra và Tìm số chính phương

Huy Erick
Kiểm tra số chính phương là một vấn đề phổ biến khi lập trình. Trong bài viết này, chúng ta sẽ tìm hiểu cách kiểm tra số chính phương trong ngôn ngữ lập trình C/C++...

Kiểm tra số chính phương C++ Kiểm tra số chính phương là một vấn đề phổ biến khi lập trình. Trong bài viết này, chúng ta sẽ tìm hiểu cách kiểm tra số chính phương trong ngôn ngữ lập trình C/C++ và cách tìm các số chính phương trong một mảng.

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

Số chính phương là một số tự nhiên có căn bậc hai là một số tự nhiên. Đơn giản hơn, số chính phương chính là bình phương của một số nguyên.

Ví dụ, các số như 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 đều là các số chính phương.

Chúng ta có thể biểu diễn số chính phương dưới dạng:

n^2 = x

Trong đó, n là số chính phương và x là một số nguyên dương.

Các tính chất của số chính phương bao gồm:

  • Số chính phương chỉ có thể tận cùng bằng 0, 1, 4, 5, 6, 9.
  • Số chính phương không có dạng 3n + 2, 4n + 2 hoặc 4n + 3 (trong đó n là số tự nhiên).
  • Số chính phương chia cho 3 luôn có số dư là 0 hoặc 1; chia cho 4 luôn dư 0 hoặc 1; số chính phương lẻ khi chia 8 luôn dư 1.
  • Số chính phương luôn có số ước là một số lẻ.
  • Số chính phương chia hết cho số nguyên tố p thì chia hết cho p^2.

Đó là những khái niệm về số chính phương. Hy vọng rằng các thông tin này sẽ giúp bạn hiểu rõ hơn về khái niệm này.

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

Bài toán 1: Kiểm tra số chính phương trong C/C++

Trong bài toán này, chúng ta sẽ viết một chương trình để kiểm tra xem một số nguyên dương n có phải là số chính phương hay không. Một số chính phương là số có căn bậc hai là một số nguyên. Chúng ta sử dụng ngôn ngữ lập trình C/C++ để giải quyết bài toán này.

Cách 1: Sử dụng vòng lặp

#include 

int main() {
    int n;
    printf("Nhập n: ");
    scanf("%d", &n);

    int i = 0;
    while (i * i <= n) {
        if (i * i == n) {
            printf("%d là số chính phương!\n", n);
            return 0;
        }
        ++i;
    }

    printf("%d không phải số chính phương!\n", n);
    return 0;
}

Cách 2: Sử dụng hàm sqrt()

#include 
#include 

int main() {
    int n;
    printf("Nhập n: ");
    scanf("%d", &n);

    int sqr = sqrt(n);
    if (sqr * sqr == n) {
        printf("%d là số chính phương!\n", n);
    } else {
        printf("%d không phải số chính phương!\n", n);
    }

    return 0;
}

Bài toán 2: Tìm số chính phương trong mảng

Trong bài toán này, chúng ta sẽ viết một chương trình để tìm và in ra các số chính phương trong một mảng số nguyên. Chúng ta cũng sử dụng ngôn ngữ C/C++ để giải quyết bài toán này.

#include 
#include 

using namespace std;

bool isPerfectSquare(int n) {
    int sqrtN = sqrt(n);
    return (sqrtN * sqrtN == n);
}

int main() {
    int n;
    do {
        cout << "Nhập n: ";
        cin >> n;
    } while (n <= 0);

    int a[n];
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }

    cout << "Các số chính phương:" << endl;
    for (int i = 0; i < n; i++) {
        if (isPerfectSquare(a[i])) {
            cout << a[i] << " ";
            // Nếu muốn in chỉ số của các số chính phương, bỏ comment dòng dưới
            // cout << i << endl;
        }
    }

    return 0;
}

Kết luận

Như vậy, chúng ta đã tìm hiểu cách kiểm tra số chính phương và cách tìm các số chính phương trong một mảng sử dụng ngôn ngữ lập trình C/C++. Hy vọng rằng bài viết này đã mang lại những thông tin hữu ích cho bạn.

Kiểm tra số chính phương C++ Hình ảnh minh họa về kiểm tra số chính phương trong C++

1