Bài toán: Viết hàm đếm số lượng số nguyên tố nhỏ hơn 100 trong mảng một chiều các số nguyên dương.
- Input
1 5 7 103 97 51
- Output
3
Ý tưởng đếm số lượng số nguyên tố
Đầu tiên các bạn phải viết một hàm kiểm tra số nguyên tố, nếu các bạn chưa biết cách viết thì có thể xem tại đây.
Ta khởi tạo một biến count = 0
,sau đó các bạn tiến hành duyệt hết tất cả mảng. Nếu phần tử nào vừa nhỏ hơn 100 vừa là số nguyên tố thì ta tăng giá trị biến count
lên một đơn vị.
Xây dựng hàm nhập mảng
void nhap(int a[], int n) { for (int i = 0; i < n; i++) { cout << "Nhap a[" << i << "]: "; cin >> a[i]; } }
Hàm nhap()
cần truyền vào hai tham số đó là tên mảng và số lượng phần tử của mảng. Hàm nhap()
sẽ có kiểu trả về là void.
Xây dựng hàm kiểm tra số nguyên tố
bool check(int n) { if (n < 2) return false; for (int i = 2; i <= sqrt(n); i++) if (n%i == 0) return false; return true; }
Hàm check()
sẽ trả về giá trị true nếu n là số nguyên tố, ngược lại sẽ trả về giá trị false.
Xây dựng hàm đếm số lượng số nguyên tố nhỏ hơn 100
int Fun(int a[], int n) { int count = 0; for (int i = 0; i < n; i++) if (check(a[i]) == true && a[i] < 100) count++; return count; }
Hàm Fun()
sẽ có hai tham số truyền vào đó là tên mảng và số lượng phần tử của mảng. Hàm Fun()
sẽ trả về giá trị kiểu int chính là số lượng số nguyên tố nhỏ hơn 100.
Code tham khảo
#include <iostream> #include<math.h> using namespace std; bool check(int n) { if (n < 2) return false; for (int i = 2; i <= sqrt(n); i++) if (n%i == 0) return false; return true; } void nhap(int a[], int n) { for (int i = 0; i < n; i++) { cout << "Nhap a[" << i << "]: "; cin >> a[i]; } } int Fun(int a[], int n) { int count = 0; for (int i = 0; i < n; i++) if (check(a[i]) == true && a[i] < 100) count++; return count; } int main() { int a[200]; /*Khoi tao mang co 200 phan tu*/ int n; cout << "Nhap so luong phan tu: "; cin >> n; nhap(a, n); cout << "So luong so nguyen to be hon 100 la: " << Fun(a, n); return 0; }
Sau khi chạy hàm trên ta sẽ kết quả trả về như sau
Nhap so luong phan tu: 4 Nhap a[0]: 1 Nhap a[1]: 3 Nhap a[2]: 5 Nhap a[3]: 97 So luong so nguyen to be hon 100 la: 3
Mở rộng bài toán
Từ bài toán trên ta có thể mở rộng như sau: Viết hàm đếm số lượng số nguyên tố nhỏ hơn k ( k là số nguyên dương được nhập vào) trong mảng một chiều các số nguyên dương.
Với bài toán trên thì ta chỉ cần sửa lại hàm Fun()
int Fun(int a[], int n, int k) { int count = 0; for (int i = 0; i < n; i++) if (check(a[i]) == true && a[i] < k) count++; return count; }
Ta chỉ cần truyền thêm một tham số k và sửa lại điều kiện a[i] < k
là đã xong bài toán trên rồi !
Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !
Để lại một bình luận