LATEST

In các số nguyên tố trong mảng C / C++

Trong bài viết này, codehow sẽ hướng dẫn các bạn thực hiện chương trình in số nguyên tố trong mảng C / C++. Đây là dạng bài tập kết hợp giữa việc sử dụng hàm và mảng trong C / C++.

Chương trình sẽ thực hiện duyệt từng phần tử trong mảng, kiểm tra phần tử đó có phải số nguyên tố hay không. Nếu phải thì in ra màn hình, ngược lại thì bỏ qua và duyệt phần tử tiếp theo.

Ví dụ: mình có mảng Number = {2, 4, 7, 11}, đầu tiên chương trình kiểm tra số 2, đây là số nguyên tố nên thực hiện in ra màn hình. Tiếp đến số 4, không phải là số nguyên tố thì bỏ qua, tiếp tục như vậy cho đến hết mảng.

Kết quả: Số 2, 7, 11 là các số nguyên tố có trong mảng Number.

Vậy làm thế nào để thực hiện chương trình in số nguyên tố trong mảng C / C++, hãy bắt đầu cùng mình ngay bây giờ thôi nhé.

Chương trình in số nguyên tố trong mảng C / C++

Để in số nguyên tố trong mảng C / C++, ta cần tạo hàm KiemTraSoNguyenTo() với tham số là một số nguyên n. Hàm này được dùng để kiểm tra số được truyền vào có phải số nguyên tố hay không.

bool KiemTraNguyenTo(int n)
{
  //nếu n < 2 thì không phải là số nguyên tố
    if (n < 2)
    {
        return false;
    }
    //nếu n > 2 thì ta tiếp tục xét
    else if (n > 2)
    {
      //nếu n % 2 == 0 thì không phải là số nguyên tố
        if (n % 2 == 0) 
        {
            return false;
        }
        //ta sử dụng vòng lặp for lặp từ 3 đến căn bậc hai của n, với bước nhảy += 2
        for (int i = 3; i <= sqrt((float)n); i += 2) 
        {
          //nếu n chia hết cho i thì không phải là số nguyên tố
            if (n % i == 0)
            {
                return false;
            }
        }
    }
    //còn lại là số nguyên tố
    return true;
}

Tiếp đến ta tạo hàm InNguyenTo() hàm này có chức năng in các số nguyên tố trong mảng ra màn hình.

/* hàm đếm số nguyên tố trong mảng */
void innguyento(int a[], int n)
{
    //ta sử dụng vòng lặp for để duyệt từng phần tử trong mảng
    //cứ mỗi vòng lặp ta gọi hàm KiemTraNguyenTo() để kiểm tra phần tử đó
    printf("\nCác số nguyên tố trong mảng là: ");
    for(int i = 0; i < n; i++)
    {
        if(KiemTraNguyenTo(a[i]) == true && a[i] < 100)
        {
            printf("%d ", a[i]);
        }
    }
}

Cuối cùng ta yêu cầu người dùng nhập vào số lượng phần tử và giá trị các phần tử trong mảng. Sau đó gọi hàm InNguyenTo() và truyền tham số vào hàm.

int main()
{
    int i, count, sum = 0;
    printf("Nhập số lương phần tử trong mảng:");
    scanf("%d", &count);
    int number[count];

    printf("\nNhập giá trị cho từng phần tử trong mảng:\n");
    for (i = 0; i < count; ++i)
      scanf("%d", &number[i]);

    innguyento(number, count);
    
    printf("\n-----------------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
}

Dưới đây là hai chương trình mình đã viết bằng hai ngôn ngữ khác nhau C và C++, các bạn có thể tham khảo nhé.

Chương trình C:

#include<stdio.h>
#include<math.h>
#include<stdbool.h>
bool KiemTraNguyenTo(int n)
{
  //nếu n < 2 thì không phải là số nguyên tố
    if (n < 2)
    {
        return false;
    }
    //nếu n > 2 thì ta tiếp tục xét
    else if (n > 2)
    {
      //nếu n % 2 == 0 thì không phải là số nguyên tố
        if (n % 2 == 0) 
        {
            return false;
        }
        //ta sử dụng vòng lặp for lặp từ 3 đến căn bậc hai của n, với bước nhảy += 2
        for (int i = 3; i <= sqrt((float)n); i += 2) 
        {
          //nếu n chia hết cho i thì không phải là số nguyên tố
            if (n % i == 0)
            {
                return false;
            }
        }
    }
    //còn lại là số nguyên tố
    return true;
}
/* hàm đếm số nguyên tố trong mảng */
void innguyento(int a[], int n)
{
    //ta sử dụng vòng lặp for để duyệt từng phần tử trong mảng
    //cứ mỗi vòng lặp ta gọi hàm KiemTraNguyenTo() để kiểm tra phần tử đó
    printf("\nCác số nguyên tố trong mảng là: ");
    for(int i = 0; i < n; i++)
    {
        if(KiemTraNguyenTo(a[i]) == true && a[i] < 100)
        {
            printf("%d ", a[i]);
        }
    }
}
int main()
{
    int i, count, sum = 0;
    printf("Nhập số lương phần tử trong mảng:");
    scanf("%d", &count);
    int number[count];

    printf("\nNhập giá trị cho từng phần tử trong mảng:\n");
    for (i = 0; i < count; ++i)
      scanf("%d", &number[i]);

    innguyento(number, count);
    
    printf("\n-----------------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
}

Kết quả:

bai25 02 PNG

Chương trình C++:

#include <iostream>
#include <math.h>
using namespace std;

bool KiemTraNguyenTo(int n) {
  // nếu n < 2 thì không phải là số nguyên tố
  if (n < 2) {
    return false;
  }
  // nếu n > 2 thì ta tiếp tục xét
  else if (n > 2) {
    // nếu n % 2 == 0 thì không phải là số nguyên tố
    if (n % 2 == 0) {
      return false;
    }
    // ta sử dụng vòng lặp for lặp từ 3 đến căn bậc hai của n, với bước nhảy +=
    // 2
    for (int i = 3; i <= sqrt((float)n); i += 2) {
      // nếu n chia hết cho i thì không phải là số nguyên tố
      if (n % i == 0) {
        return false;
      }
    }
  }
  // còn lại là số nguyên tố
  return true;
}
/* hàm đếm số nguyên tố trong mảng */
void innguyento(int a[], int n) {
  // ta sử dụng vòng lặp for để duyệt từng phần tử trong mảng
  // cứ mỗi vòng lặp ta gọi hàm KiemTraNguyenTo() để kiểm tra phần tử đó
  cout << "\nCác số nguyên tố trong mảng là: ";
  for (int i = 0; i < n; i++) {
    if (KiemTraNguyenTo(a[i]) == true && a[i] < 100) {
      cout << a[i] << " ";
    }
  }
}
int main() {
  int i, count, sum = 0;
  cout << "Nhập số lương phần tử trong mảng:";
  cin >> count;
  int number[count];

  cout << "\nNhập giá trị cho từng phần tử trong mảng:\n";
  for (i = 0; i < count; ++i)
    cin >> number[i];

  innguyento(number, count);

  cout << "\n-----------------------------------\n";
  cout << "Chương trình này được đăng tại codehow.net";
}

Kết quả:

bai25 01 PNG

Như vậy là chúng ta đã cùng nhau thực hiện xong chương trình in số nguyên tố trong mảng C / C++. Các bạn có thể luyện tập nhiều dạng bài tập hơn tại serries bài tập C / C++ của codehow nhé. Cảm ơn các bạn rất nhiều !!!

Cùng chuyên mục:

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán tính lũy thừa trong C / C++

Thuật toán tính lũy thừa trong C / C++

Top