Với link rút gọn dạng bbmkts.com này, trường hợp có nút lấy mã như sau Mô tả hình ảnh nếu lấy mã mà mã báo sai, thì điền mã là chổ Mã code là như hình sau ở bước 4 Mô tả hình ảnh, các trường hợp khác đọc kỹ hướng dẫn trong link để vượt
Với link rút gọn dạng yeumoney.com này, nhớ xem kỹ nút lấy mã là màu ĐỎ Mô tả hình ảnh ở cuối trang, hay nút màu XANHMô tả hình ảnhở gần giữa trang, coi chừng nhầm nút
Yêu cầu của chúng ta là đếm số lượng số nguyên tố có trong mảng 1 chiều. Nếu có thì liệt kê các số nguyên tố có trong mảng 1 chiều đó ra.

Chúng ta cần làm các bước sau:

  1. Viết hàm kiểm tra số nguyên tố
  2. Viết hàm đếm số lượng số nguyên tố
  3. Viết hàm hiển thị các số nguyên tố trong mảng nếu mảng có số nguyên tố

Hàm kiểm tra 1 số là nguyên tố


/*
    Kiểm tra số a co phai la so nguyên tố khong, neu phai tra ve true
*/
int IsPrime(int a)
{
    if (a < 2)
        return 0;
    for (int i = 2; i <= sqrt(a); i++)
    {
        if (a % i == 0)
        {
            return 0;
        }
    }
    return 1;
}

Hàm đếm số lượng số nguyên tốtrong mảng


int PrimeCount(int a[], int n)
{
    int count = 0;
    for (int i = 0; i < n; i++)
    {
        if (IsPrime(a[i]))
        {
            count++;
        }
    }
    return count;
}

Hàm liệt kê số nguyên tố trong mảng


void PrintPrime(int a[], int n)
{
    for (int i = 0; i < n; i++)
    {
        if (IsPrime(a[i]))
        {
            printf("%d\t", a[i]);
        }
    }
}

Chương trình liệt kê các nguyên tố trong mảng


#include <stdio.h>
#include <math.h>
#define MAX_SIZE 100 // sức chứa tối đa
 
void NhapMang(int arr[], int n)
{
    for (int i = 0; i < n; i++)
    {
        printf("Nhap arr[%d] = ", i);
        scanf("%d", &arr[i]);
    }
}
 
void XuatMang(int arr[], int n)
{
    for (int i = 0; i < n; i++)
    {
        printf("\narr[%d] = %d", i, arr[i]);
    }
}
 
/*
    Kiểm tra số nguyên tố
*/
int IsPrime(int a)
{
    if (a < 2)
        return 0;
    for (int i = 2; i <= sqrt(a); i++)
    {
        if (a % i == 0)
        {
            return 0;
        }
    }
    return 1;
}
 
/*
    Đếm số lượng số nguyên tố
*/
int PrimeCount(int a[], int n)
{
    int count = 0;
    for (int i = 0; i < n; i++)
    {
        if (IsPrime(a[i]))
        {
            count++;
        }
    }
    return count;
}
 
/*
    Liệt kê các số nguyên tố
*/
 
void PrintPrime(int a[], int n)
{
    for (int i = 0; i < n; i++)
    {
        if (IsPrime(a[i]))
        {
            printf("%d\t", a[i]);
        }
    }
}
 
int main()
{
    int arr[MAX_SIZE];
 
    int n; // số lượng phần tử của mảng
    // Kiểm tra số lượng phần tử là số dương + nhỏ hơn MAX_SIZE
    do
    {
        printf("Nhap n = ");
        scanf("%d", &n);
    } while (n <= 0 || n > MAX_SIZE);
 
    // Nhập mảng
    NhapMang(arr, n);
 
    // Xuất mảng
    XuatMang(arr, n);
 
    // Giải bài toán
    int primeCount = PrimeCount(arr, n);
    printf("\nSo luong so nguyen to la %d", primeCount);
    if(primeCount > 0){
        printf("\nDanh sach so nguyen to: ");
        PrintPrime(arr, n);
    }
}

By alaza7

Leave a Reply

Your email address will not be published. Required fields are marked *