Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 배열 곱셈의 제수 카운트

<시간/>

주어진 크기의 정수 요소의 arr[] 배열이 주어지고 모든 배열 요소를 곱하여 계산된 숫자의 인수 개수를 계산하는 것이 작업입니다.

배열은 같은 유형의 요소에 대한 고정 크기 순차 컬렉션을 저장할 수 있는 일종의 데이터 구조입니다. 배열은 데이터 모음을 저장하는 데 사용되지만 종종 배열을 같은 유형의 변수 모음으로 생각하는 것이 더 유용합니다.

예를 들어

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

설명 - 배열의 곱셈은 2 * 3은 6이고 6의 인수는 1, 2, 3, 6입니다. 따라서 총 6의 인수는 4개입니다.

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

설명 - 배열의 곱은 2 * 3 * 5는 30이고 30의 인수는 1, 2, 3, 5, 6, 10, 15, 30입니다. 따라서 총 30의 인수는 8개입니다.

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • arr[]

    라고 가정해 봅시다.
  • 배열의 요소에 따라 정수 값을 반환하는 length() 함수를 사용하여 배열의 길이를 계산합니다.

  • 임시 변수를 선언하고 임시 변수를 1로 설정합니다.

  • i에 대한 루프 시작 0 및 i가 배열 크기보다 작음

  • temp를 temp로 설정 * =arr[i]

  • 카운트를 반환할 다른 함수를 호출합니다.

  • 요소 수를 저장할 임시 변수를 가져옵니다.

  • i에 대한 루프 시작 1 및 i가 mul보다 작습니다.

  • 루프 내부에서 temp % i =0인지 확인한 다음 count 값을 1씩 증가시킵니다.

  • 개수 반환

  • 결과를 인쇄하십시오.

예시

#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;
}

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

count is 16