ให้ตัวเลข n เราต้องหาตัวประกอบทั้งหมดของมันและหาผลคูณของปัจจัยเหล่านั้นและส่งคืนผลลัพธ์ นั่นคือ ผลคูณของตัวประกอบของตัวเลข ตัวประกอบของตัวเลขคือตัวเลขที่สามารถหารจำนวนเต็มได้ เช่น 1. ตัวประกอบของ 6 คือ − 1, 2, 3, 6
ตอนนี้ตามงาน เราต้องหาตัวประกอบทั้งหมดของตัวเลขให้เจอ
อินพุต - n =18
ผลลัพธ์ - 5832
คำอธิบาย - 1 * 2 * 3 * 6 * 9 * 18 =5832
อินพุต - n =9
ผลลัพธ์ - 27
คำอธิบาย - 1 * 3 * 9 =27
แนวทางที่ใช้ด้านล่างมีดังต่อไปนี้ในการแก้ปัญหา -
-
รับอินพุต num .
-
วนจาก i =1 ถึง i*i<=num
-
ตรวจสอบว่า num%i==0 แล้ว ตรวจสอบ
-
หาก num%i ==i ให้ตั้งค่าของผลิตภัณฑ์ =(product*i)%1e7
-
Else กำหนดผลิตภัณฑ์เป็น (ผลิตภัณฑ์ * i) % MAX และ กำหนดผลิตภัณฑ์เป็น (ผลิตภัณฑ์ * num / i) % MAX.
-
-
คืนสินค้า
อัลกอริทึม
Start In Function long long productfactor(int num) Step 1→ Declare and Initialize product as 1 Step 2→ For i = 1 and i * i <= num and i++ If num % i == 0 then, If num / i == i then, Set product as (product * i) % MAX Else Set product as (product * i) % MAX Set product as (product * num / i) % MAX Step 3→ Return product In Function int main() Step 1→ Declare and initialize n as 9 Step 2→ Print the result productfactor(n) Stop
ตัวอย่าง
#include <stdio.h>
#define MAX 1000000000
// find the product of the factors
long long productfactor(int num){
long long product = 1;
for (int i = 1; i * i <= num; i++){
if (num % i == 0){
//equal factors should be multiplied only once
if (num / i == i)
product = (product * i) % MAX;
// Else multiply both
else {
product = (product * i) % MAX;
product = (product * num / i) % MAX;
}
}
}
return product;
}
int main(){
int n = 9;
printf("%lld\n", productfactor(n));
return 0;
} ผลลัพธ์
หากรันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -
27