icantech
Lập trình C
6383
16/12/2023

Tìm hiểu về hàm căn bậc hai trong C

Các phép tính đại số, tính căn bậc hai thường được ứng dụng rộng rãi trong Toán học. Tuy nhiên, không phải ai cũng biết cách tính hàm căn bậc hai trong C. Trong bài viết này, hãy cùng ICANTECH tìm hiểu cách tính hàm căn bậc hai trong C nhé!

1. Cách tính bình phương 1 số trong C

Bình phương là một phép toán trong toán học và lập trình, được sử dụng để tính bình phương của một số. Khi ta bình phương một số, ta nhân số đó với chính nó. Kết quả là một số mới, được gọi là bình phương của số ban đầu.

Khái niệm bình phương thường được biểu diễn bằng dấu mũ 2 (^2) hoặc dấu nhân (*). Trong C, để thể hiện phép tính bình phương, chúng ta sử dụng toán tử *.

Ví dụ, bình phương của số a có thể được biểu diễn dưới dạng a * a.

Ví dụ:

#include <iostream>

using namespace std;

 

int main() {

    int x = 5;

    int square_x = x * x;

    cout << "Bình phương của " << x << " là " << square_x << endl;

    return 0;

}

Kết quả:

Bình phương của 5 là 25

1.1. Hàm căn bậc 2 trong C với thư viện math

Math là một thư viện toán học được cung cấp trong Python. Để tính căn bậc 2 trong thư viện Math ta có thể sử dụng phương thức pow() - tính lũy thừa hoặc phương thức sqrt() - tính căn bậc 2.

1.2. Sử dụng phương thức pow()

Cũng tương tự việc sử dụng toán tử, việc tính căn trong C với phương thức tính số mũ sẽ dựa trên công thức.

Ví dụ:

#include <iostream>

#include <math.h>

using namespace std;

 

int main()

{

  double x = 9, result;

  result = pow(x, 0.5);

  cout <<"Căn bậc hai của "<< x << " = " << result;

  cout<<"\n--------------------------------------------\n";

  cout<<"Chương trình này được viết bởi ICANTECH";

}

Kết quả:

Căn bậc hai của 9 = 3

************************************

Chương trình này được viết bởi ICANTECH

1.3. Sử dụng phương thức sqrt()

Hàm sqrt trong C là một hàm tích hợp sẵn từ thư viện cmath (hoặc math.h) và được sử dụng để tính căn bậc hai (căn bậc hai) của một số. Hàm này là một công cụ quan trọng trong lập trình và toán học, giúp chúng ta dễ dàng tính toán giá trị căn bậc hai của các số thực.

Để sử dụng hàm sqrt, bạn chỉ cần bao gồm thư viện cmath hoặc math.h, sau đó gọi hàm sqrt với tham số là số cần tính căn bậc hai. Hàm này trả về giá trị là căn bậc hai của số đó dưới dạng một số thực (double).

Dưới đây là một ví dụ đơn giản về cách sử dụng hàm sqrt trong C:

Ví dụ:

#include <iostream>

#include <math.h>

using namespace std;

 

int main()

{

  double x = 9, result;

  result = sqrt(x);

  cout <<"Căn bậc hai của "<< x << " = " << result;

  cout<<"\n************************************\n";

  cout<<"Chương trình này được viết bởi ICANTECH";

}

Kết quả:

Căn bậc hai của 9 = 3

************************************

Chương trình này được viết bởi ICANTECH

2. Ứng dụng tính hàm căn bậc 2 trong C

Dưới đây là một số ứng dụng tính hàm căn bậc 2 trong lập trình C:

2.1. Kiểm tra số chính phương

Ý tưởng: để kiểm tra xem một số n có phải là số chính phương hay không. Sử dụng hàm sqrt để tính căn bậc hai của số đó, sau đó kiểm tra xem phần nguyên của căn bậc hai số đó bình phương lên có bằng n hay không. Nếu đúng, thì n là số chính phương.

Ví dụ:

#include <iostream>

#include <cmath>

 

bool isPerfectSquare(int n) {

    double squareRoot = sqrt(n);

    int intPart = static_cast<int>(squareRoot);

    return (intPart * intPart == n);

}

 

int main() {

    int num;

    std::cout << "Nhập một số nguyên dương: ";

    std::cin >> num;

    if (isPerfectSquare(num)) {

        std::cout << num << " là số chính phương." << std::endl;

    } else {

        std::cout << num << " không phải là số chính phương." << std::endl;

    }

    return 0;

}

Kết quả:

Nhập một số nguyên dương: 9

9 là số chính phương.

2.2. Kiểm tra số nguyên tố

Ý tưởng: Để kiểm tra xem một số n có phải là số nguyên tố hay không. Chúng ta sử dụng phương pháp kiểm tra số nguyên tố bằng cách kiểm tra xem số đó có chia hết cho các số từ 2 đến căn bậc hai của số đó hay không, với một số tối ưu hóa. Hàm sqrt được sử dụng để tính toán giới hạn cho vòng lặp, giúp giảm bớt số lần kiểm tra.

Ví dụ:

#include <iostream>

#include <cmath>

 

bool isPrime(int n) {

    if (n <= 1) {

        return false; // Không phải số nguyên tố

    }

    if (n <= 3) {

        return true; // 2 và 3 là số nguyên tố

    }

    if (n % 2 == 0 || n % 3 == 0) {

        return false; // Nếu n chia hết cho 2 hoặc 3 thì không phải số nguyên tố

    }

    int limit = sqrt(n);

    for (int i = 5; i * i <= n; i += 6) {

        if (n % i == 0 || n % (i + 2) == 0) {

            return false; // Nếu n chia hết cho i hoặc (i + 2) thì không phải số nguyên tố

        }

    }

    return true; // Nếu không chia hết cho bất kỳ số nào thì là số nguyên tố

}

int main() {

    int num;

    std::cout << "Nhập một số nguyên dương: ";

    std::cin >> num;

    if (isPrime(num)) {

        std::cout << num << " là số nguyên tố." << std::endl;

    } else {

        std::cout << num << " không phải số nguyên tố." << std::endl;

    }

    return 0;

}

Kết quả:

Nhập một số nguyên dương: 7

7 là số nguyên tố.

3. Một số lưu ý khi tính hàm căn bậc 2 trong Python

3.1. Tính hàm căn bậc 2 của số âm

Nếu truyền đối số là một số âm vào phương thức sqrt() để tính căn bậc 2 thì chương trình sẽ báo lỗi: ValueError: math domain error

Ví dụ:

#include <iostream>

#include <math.h>

using namespace std;

 

int main()

{

  double x = -9, result;

  result = sqrt(x);

  cout <<"Căn bậc hai của "<< x << " = " << result;

  cout<<"\n************************************\n";

  cout<<"Chương trình này được viết bởi ICANTECH";

}

Kết quả:

Căn bậc hai của -9 = -nan

************************************

Chương trình này được viết bởi ICANTECH

3.2. Một số lưu ý khác

Khi sử dụng hàm sqrt trong C để tính căn bậc hai, có một số điểm cần lưu ý:

  • Phải bao gồm thư viện cmath hoặc math.h: Để sử dụng hàm sqrt, bạn phải bao gồm thư viện #include <cmath> hoặc #include <math.h>.
  • Kiểm tra số âm: Hàm sqrt không thể tính căn bậc hai của số âm, và nó sẽ trả về NaN (Not-a-Number) trong trường hợp này. Trước khi sử dụng sqrt, bạn nên kiểm tra xem số đó có lớn hơn hoặc bằng 0 hay không.
  • Định dạng kết quả: Kết quả của hàm sqrt là một số thực (double), vì vậy bạn nên định dạng kết quả in ra nếu cần. Bạn có thể sử dụng std::fixedstd::setprecision để định dạng số chữ số sau dấu thập phân.
  • Số nguyên và số thực: Hàm sqrt làm việc với số thực, vì vậy nếu bạn muốn tính căn bậc hai của một số nguyên, hãy chắc chắn rằng bạn đã ép kiểu số nguyên thành số thực trước khi sử dụng sqrt.
  • Sử dụng với biến có kiểu dữ liệu đúng: Đảm bảo rằng bạn sử dụng biến có kiểu dữ liệu phù hợp với hàm sqrt. Hàm sqrt yêu cầu một biến có kiểu dữ liệu số thực (float hoặc double) hoặc số phức.

4. Lời Kết

Việc tính toán là một phần quan trọng của cuộc sống hàng ngày. Để nâng cao hiệu suất và hỗ trợ trong công việc cũng như học tập, chúng ta có thể ứng dụng lập trình Python để thực hiện các tính toán. Qua bài viết này, ICANTECH hi vọng bạn đã có thêm những kiến thức về cách tính hàm căn bậc hai trong C cũng như ứng dụng các kiến thức trên vào dự án lập trình của mình. 

Cảm ơn bạn đã đọc bài viết, nếu bạn đang quan tâm đến học lập trình thì hãy tham khảo ngay các khóa học lập trình dưới đây tại ICANTECH nhé

Nguồn ảnh: ICANTECH.

Share
Tags
Lập trình C

Bài tương tự