1. Bài tập đếm số lượng số nguyên tố có trong mảng C

Để làm giải bài tập này ta cần dùng một hàm bool KiemTraNguyenTo() để kiểm tra các số nguyên tố có trong mảng cùng với sử dụng mảng một chiều trong C và các phép toán học cơ bản.

Đầu vào sẽ là các phần tử của mảng, yêu cầu của bài toán là đếm số lượng số nguyên tố có trong mảng bằng ngôn ngữ C.

2. Lời giải

Để giải được bài tập đếm số lượng số nguyên tố có trong mảng C bạn phải có kiến thức về toán học cơ bản, có kiến thức về nhập xuất cơ bản,  sử dụng hàm và cách sử dụng mảng một chiều trong C.

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

Bước 1: Viết hàm bool KiemTraNguyenTo(int n) dùng để kiểm tra số nguyên tố(các bạn có thể tìm hiểu rõ hơn về kiểm tra số nguyên tố).

Bước 2: khai báo biến int n dùng để nhập số phần tử của mảng, khai báo mảng tĩnh int a[100], khai báo biến int dem =0 dùng để đếm số lượng số nguyên tố trong mảng.

Bước 3: Nhập vào số phần tử của mảng nếu n<1 hoặc n>100 yêu cầu nhập lại.

Bước 4: Dùng vòng lặp for bắt đầu từ int i = 0 kết thúc tại i<= n và mỗi lần i tăng 1, nhập vào từ bàn phím giá trị cho các phần tử trong mảng.

Bước 5: Dùng vòng lặp for bắt đầu từ int i = 0 kết thúc tại i<= n và mỗi lần i tăng 1, in các phần tử trong mảng ra màn hình.

Bước 6: Dùng vòng lặp for bắt đầu từ int i = 0 kết thúc tại i<= n và mỗi lần i tăng 1; dùng if với điều kiện KiemTraNguyenTo(a[i]) == true thì biến dem tăng lên 1.

Bước 7: In dem ra màn hình.

Chương trình giải bài đếm số lượng số nguyên tố có trong mảng C như sau :

#include<stdio.h>
#include<conio.h>
#include<math.h>
//ham dung de kiem tra so nguyen to
bool KiemTraNguyenTo(int n)
{
    if (n < 2)//neu n < 2 thi khong phai so nguyen to
    {
        return false;
    }
    else if (n > 2)
    {
        if (n % 2 == 0) //neu la so chan khong phai so nguyen to
        {
            return false;
        }
        for (int i = 3; i <= sqrt((float)n); i += 2)  //kiem tra so le
        {
            if (n % i == 0)// neu chia het cho i thi khong phai so nguyen to
            {
                return false;
            }
        }
    }
    //nguoc lai la so nguyen to
    return true;
}
int main()
{
    // khai bao n
    int n;
    // khai bao mang mot chieu a co toi da 100 phan tu
    int a[100];
    // khai bao dem
    int dem=0;
    // nhap vo so phan tu cua mang
    do{
        printf("Nhap so phan tu mang:");
        scanf("%d", &n);
    }while(n<1 || n>100);
    
    //nhap vao cac phan tu cua mang
    for(int i=0; i< n; i++)
    {
        printf("Nhap a[%d] = ",i);
        scanf("%d", &a[i]);
    }
    printf("Mang sau khi nhap la:\n");
    //hien thi mang ra man hinh
    for(int i=0; i< n; i++)
    {
        printf("%d \t",a[i]);
    }
    //dem so nguyen to co trong mang
    for(int i = 0; i < n; i++)
    {
        if(KiemTraNguyenTo(a[i]) == true)// neu a[i] la so nguyen to dem tang len 1
        {
            dem++;
        }
    }
    //in dem tra man hinh
    printf("\nSo luong cac so nguyen to la: %d", dem);
    
}

Ví dụ tôi nhập mảng có 5 phần từ là: 1, 3, 5, 7,10

Kết quả:

Nhap so phan tu mang:5
Nhap a[0] = 1
Nhap a[1] = 3
Nhap a[2] = 5
Nhap a[3] = 7
Nhap a[4] = 10
Mang sau khi nhap la:
1 3 5 7 10
So luong cac so nguyen to la: 3

3. Tổng kết

Để thực hiện giải bài tập đếm số lượng số nguyên tố có trong mảng C bạn đọc cần phải có kiến thức cơ bản về 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 phép toán học cơ bản, sử dụng hàm và cách sử dụng mảng một chiều trong C.