
- C++ Basics
- C++ Home
- C++ Overview
- C++ Environment Setup
- C++ Basic Syntax
- C++ Comments
- C++ Data Types
- C++ Variable Types
- C++ Variable Scope
- C++ Constants/Literals
- C++ Modifier Types
- C++ Storage Classes
- C++ Operators
- C++ Loop Types
- C++ Decision Making
- C++ Functions
- C++ Numbers
- C++ Arrays
- C++ Strings
- C++ Pointers
- C++ References
- C++ Date & Time
- C++ Basic Input/Output
- C++ Data Structures
- C++ Object Oriented
- C++ Classes & Objects
- C++ Inheritance
- C++ Overloading
- C++ Polymorphism
- C++ Abstraction
- C++ Encapsulation
- C++ Interfaces
Count elements that are divisible by at-least one element in another array in C++
We are given two arrays, let's say arr_1[] and arr_2[] both containing integer values and the task is to calculate the count of elements that are divisible by at least one element in another array. It means there we need to count those elements having at least one factor in the second array which is arr_2.
Arrays a kind of data structure that can store a fixed-size sequential collection of elements of the same type. An array is used to store a collection of data, but it is often more useful to think of an array as a collection of variables of the same type.
For Example
Input − int arr_1[] = {1, 2, 3, 4, 5} arr_2[] = {2, 6, 12, 15} Output − count is 2
Explanation − There are 5 elements in arr_1[] and 4 elements in arr_2[]. All the elements in arr_1[] are divisible by arr_2[]. So the count is 5.
Input − int arr_1[] = {1, 2, 3, 4, 5} arr_2[] = {13, 11} Output − count is 0
Explanation − There are 5 elements in arr_1[] and 2 elements in arr_2[]. None ofl the elements in arr_1[] are divisible by arr_2[]. So the count is 0.
Approach used in the below program is as follows
Create two arrays let’s say, arr_1[] and arr_2[]
Calculate the length of both the arrays using the length() function that will return an integer value as per the elements in an array.
Take a temporary variable that will store the count of elements.
Create an unordered_set variable let’s say us
Start loop for i to 0 and i less than size of second array.
Inside the loop perform insert in arr_2[i].
Start another loop for i to 0 and i less than the size of the first array.
Inside the loop, start another loop for j to and j * j < = arr_1[i]
Inside this check if arr_1[i]%j = 0 then check if us.find(j)!=us.end OR us.find(arr[i]/j) != us.end() then increment the count by 1
Else,, break
Return count
Print the result.
Example
#include <iostream> #include <unordered_set> using namespace std; // Function to count the number of elements // in first array whose atleast one factor is // present in the second array int totalelements(int arr_1[], int size1, int arr_2[], int size2){ // variable 'result' to count the number of elements int result = 0; // Hash of second array elements unordered_set<int> h; for (int i = 0; i < size2; i++){ h.insert(arr_2[i]); } // traverse through array elements // and find its factors for (int i = 0; i < size1; i++){ for (int j = 1; j * j <= arr_1[i]; j++){ if (arr_1[i] % j == 0){ // check if the factor is present in // second array using the h if ((h.find(j) != h.end()) || (h.find(arr_1[i] / j)!= h.end())){ result++; break; } } } } return result; } // Main function int main(){ int arr_1[] = { 1, 2, 3, 4, 5 }; int arr_2[] = { 2, 6, 12, 15 }; int size1 = sizeof(arr_1) / sizeof(arr_1[0]); int size2 = sizeof(arr_2) / sizeof(arr_2[0]); cout <<"count is "<<totalelements(arr_1, size1, arr_2, size2); return 0; }
Output
If we run the above code we will get the following output −
count is 2
- Related Articles
- Print array elements that are divisible by at-least one other in C++
- Elements of an array that are not divisible by any element of another array in C++
- Count pairs in an array such that at least one element is prime in C++
- Count numbers in a range that are divisible by all array elements in C++
- Find Array Elements Which has at Least One Smaller Element in Java
- Find an array element such that all elements are divisible by it using c++
- Count the number of elements in an array which are divisible by k in C++
- Maximum value K such that array has at-least K elements that are >= K in C++
- Count pairs in an array such that frequency of one is at least value of other in C++
- Program to find minimum sum subsequence by taking at least one element from consecutive 3 elements in python
- Frequency of elements of one array that appear in another array using JavaScript
- Count divisors of n that have at-least one digit common with n in Java
- Count pairs (p, q) such that p occurs in array at least q times and q occurs at least p times in C++
- Numbers that are Bitwise AND of At Least One Non-Empty Sub-Array using C++
- Count of arrays in which all adjacent elements are such that one of them divide the another in C++
