ให้ตัวเลข 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