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:
- Viết hàm kiểm tra số nguyên tố
- Viết hàm đếm số lượng số nguyên tố
- 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);
}
}
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
, các trường hợp khác đọc kỹ hướng dẫn trong link để vượt
ở cuối trang, hay nút màu XANH
ở gần giữa trang, coi chừng nhầm nút