Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm ước số của phép nhân mảng trong C ++

Chúng ta được cung cấp một mảng, giả sử arr [] gồm các phần tử số nguyên có kích thước nhất định bất kỳ và nhiệm vụ là tính số lượng các thừa số của một số được tính bằng cách nhân tất cả các phần tử của mảng.

Mảng là một loại cấu trúc dữ liệu có thể lưu trữ một tập hợp tuần tự có kích thước cố định của các phần tử cùng kiểu. Mảng được sử dụng để lưu trữ một tập hợp dữ liệu, nhưng thường hữu ích hơn nếu coi một mảng là một tập hợp các biến cùng kiểu.

Ví dụ

Input − int arr[] = {2, 3}
Output − count is 4

Giải thích - phép nhân của mảng là 2 * 3 là 6 và các thừa số của 6 là 1, 2, 3, 6. Vậy tổng cộng có 4 thừa số là 6.

Input − int arr[] = {2, 3, 5}
Output − count is 8

Giải thích - phép nhân của mảng là 2 * 3 * 5 là 30 và các thừa số của 30 là 1, 2, 3, 5, 6, 10, 15, 30. Vậy tổng cộng có 8 thừa số là 30.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Tạo một mảng, giả sử arr []

  • Tính độ dài của mảng bằng cách sử dụng hàm length () sẽ trả về giá trị nguyên theo các phần tử trong mảng.

  • Khai báo một biến tạm thời, giả sử, hãy đặt nó thành 1

  • Bắt đầu vòng lặp cho tôi đến 0 và tôi nhỏ hơn kích thước của mảng

  • Đặt nhiệt độ thành temp * =arr [i]

  • Gọi một hàm khác sẽ trả về số đếm.

  • Lấy một biến tạm thời sẽ lưu trữ số lượng phần tử.

  • Vòng lặp bắt đầu cho tôi bằng 1 và tôi nhỏ hơn bằng nhiều.

  • Vòng lặp bên trong, kiểm tra xem temp% i =0 rồi tăng giá trị của số đếm lên 1.

  • Trả lại số lượng

  • In kết quả.

Ví dụ

#include <iostream>
using namespace std;
// Function to count number of factors
int divisors(int N){
   // Initialize result with 0
   int result = 0;
   // Increment result for every factor
   // of the given number N.
   for (int i = 1; i <= N; ++i){
      if (N % i == 0){
         result++;
      }
   }
   return result;
}
int countmultiples(int arr_1[], int size){
   // To multiply all elements of
   // the given array.
   int temp = 1;
   for (int i = 0; i < size; ++i){
      temp *= arr_1[i];
   }
   return divisors(temp);
}
// main function
int main(){
   int arr_1[] = { 5, 10, 15 };
   int size = sizeof(arr_1) / sizeof(arr_1[0]);
   cout <<"count is "<<countmultiples(arr_1, size);
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, chúng ta sẽ nhận được kết quả sau -

Số lượng
count is 16