Bài 46. Liệt Kê Số Nguyên Tố Trong Mảng 1 Chiều

[wpcc-iframe loading=”lazy” title=”Bài 46. Liệt kê các số nguyên tố trong mảng” width=”720″ height=”405″ src=”https://www.youtube.com/embed/VUBGebNvTOU?feature=oembed” frameborder=”0″ allow=”accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share” allowfullscreen]

Lời giải tham khảo

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 số nguyên tố

/* Kiểm tra số nguyên tố */ bool IsPrime(int n) { if (n < 2) return false; for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { return false; } } return true; }

Chi tiết hướng dẫn kiểm tra số nguyên tố bạn xem bài sau: hướng dẫn kiểm tra số nguyên tố

Hàm đế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; }

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("%dt", a[i]); } } }

Lời giải liệt kê số nguyên tố trong mảng

Dưới đây là toàn bộ code giải bài tập liệt kê số nguyên tố trong mảng, các bạn có thể tham khảo:

/* Bài tập: Đưa ra 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. */ #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ố */ bool IsPrime(int n) { if (n < 2) return false; for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { return false; } } return true; } /* Đế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("%dt", 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); } }

Kết quả chạy:

PS G:c_courcesday_46> .PrimeNumberInArr.exe Nhap n = 5 Nhap arr[0] = 1 Nhap arr[1] = 2 Nhap arr[2] = 3 Nhap arr[3] = 4 Nhap arr[4] = 5 arr[0] = 1 arr[1] = 2 arr[2] = 3 arr[3] = 4 arr[4] = 5 So luong so nguyen to la 3 Danh sach so nguyen to: 2 3 5

Theo dõi lập trình không khó tại:

  • Forum: https://www.facebook.com/groups/LapTrinhKhongKho/
  • Youtube: https://www.youtube.com/HieuNguyenVanOfficial

Từ khóa » Hàm Kiểm Tra Số Nguyên To Trong Mảng C