เราได้รับอาร์เรย์ สมมติว่า arr[] ขององค์ประกอบจำนวนเต็มของขนาดที่กำหนด และภารกิจคือการคำนวณการนับปัจจัยของตัวเลขที่คำนวณโดยการคูณองค์ประกอบอาร์เรย์ทั้งหมด
อาร์เรย์ประเภทโครงสร้างข้อมูลที่สามารถจัดเก็บคอลเล็กชันแบบต่อเนื่องที่มีขนาดคงที่ขององค์ประกอบประเภทเดียวกัน อาร์เรย์ใช้เพื่อจัดเก็บชุดข้อมูล แต่มักจะมีประโยชน์มากกว่าที่จะคิดว่าอาร์เรย์เป็นชุดของตัวแปรประเภทเดียวกัน
ตัวอย่าง
Input − int arr[] = {2, 3}
Output − count is 4 คำอธิบาย − การคูณอาร์เรย์คือ 2 * 3 ได้ 6 และตัวประกอบของ 6 คือ 1, 2, 3, 6 ดังนั้นทั้งหมดจึงมีตัวประกอบ 4 ตัวคือ 6
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() ที่จะคืนค่าจำนวนเต็มตามองค์ประกอบในอาร์เรย์
-
ประกาศตัวแปรชั่วคราว สมมติว่า ตั้งค่า temp เป็น 1
-
เริ่มวนรอบสำหรับ i ถึง 0 และฉันน้อยกว่าขนาดของอาร์เรย์
-
ตั้งค่า temp เป็น temp * =arr[i]
-
เรียกใช้ฟังก์ชันอื่นที่จะคืนค่าการนับ
-
ใช้ตัวแปรชั่วคราวที่จะเก็บจำนวนองค์ประกอบ
-
เริ่มวนรอบสำหรับ i ถึง 1 และ i น้อยกว่าเท่ากับ mul.
-
Inside loop ตรวจสอบว่า temp % i =0 แล้วเพิ่มค่าของการนับขึ้น 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