1. Bài tập kiểm tra N có phải số chính phương hay không

Bài tập cơ bản này ta có thể có hướng giải quyết bằng cách sử dụng hàm căn bậc hai (sqrt) nằm trong thư viện <math.h> và so sánh số nhập vào lấy căn bậc hai khi ép kiểu về số nguyên và không ép kiểu về số nguyên.

Đầu vào sẽ là một biến nguyên N và yêu cầu của bài toán là Kiểm tra N có phải số chính phương hay không.

2. Lời giải

Đầu tiên chúng ta cần phải tìm hiểu số chính phương là gì?

Số chính phương là số bằng bình phương đúng của một số nguyên. Hay hiểu đơn giản, số chính phương là một số tự nhiên có căn bậc hai cũng là một số tự nhiên.

Ví dụ số 4 có căn bậc hai bằng 2 , suy ra 4 là một số chính phương.

Để giải được bài tập kiểm tra N có phải số nguyên tố hay không bạn phải có kiến thức về toán học cơ bản, có kiến thức về lập trình C cơ bản và cách sử dụng các hàm toán học trong C.

Các bước thực hiện bài toán như sau:

Bước 1: Ta khai báo biến N để gán giá trị của N với diều kiện N>0.

Bước 2: Dùng if để kiểm tra nếu căn bậc hai của N không ép kiểu số nguyên mà bằng căn bậc hai của N ép kiểu số nguyên thì in ra màn hình N là số chính phương còn ngược lại N không phải là số chính phơng.

Ví dụ sqrt(16) = 4.00000 => ép kiểu số nguyên = 4 => vì 4.000 == 4 (true) => là số chính phương
sqrt(5) = 2.23234 => ép kiểu số nguyên = 2 => vì 2.4324 != 2 (false) =>không phải là số chính phương

Chương trình giải bài tập kiểm tra N có phải là số chính phương hay không như sau:

#include<stdio.h>
#include<math.h>
int main()
{
    //khai bao bien N
    int N;
    do
    {
        printf("\nNhap N: ");
        scanf("%d", &N);
        if(N <= 0)//neu N<0 yeu cau nhap lai
        {
            printf("\nn phai > 0. Xin nhap lai !");
        }
    }while(N <= 0);
    if (sqrt((float)N) == (int)sqrt((float)N))// So sanh 2 so khi chua ep ve kieu nguyen va so chua eo ve kieu nguyen
    {
        printf("\n%d La so chinh phuong", N);
    }
    else
    {
        printf("\n%d Khong la so chinh phuong", N);
    }

}

Ví dụ tôi nhập N=16

Kết quả:

Nhap N: 16

16 La so chinh phuong

3. Tổng kết

Để thực hiện giải bài tập kiểm tra N có phải là số chính phương hay không bạn đọc cần phải biết về số chính phương là gì?, có kiến thức cơ bản ngôn ngữ lập trình C, bạn cần nắm vững cách nhập xuất căn bản, các cách sử dụng các hàm toán học trong C và các phép toán học cơ bản .