Cho một số n, chúng ta phải tìm tất cả các thừa số của nó và tìm tích của các thừa số đó và trả về kết quả, tức là tích các thừa số của một số. Thừa số của một số là những số có thể chia hết số đó bao gồm 1. Giống như thừa số của 6 là - 1, 2, 3, 6.
Bây giờ theo nhiệm vụ, chúng ta phải tìm tích tất cả các thừa số của số.
Đầu vào - n =18
Đầu ra - 5832
Giải thích - 1 * 2 * 3 * 6 * 9 * 18 =5832
Đầu vào - n =9
Đầu ra - 27
Giải thích - 1 * 3 * 9 =27
Phương pháp tiếp cận được sử dụng bên dưới như sau để giải quyết vấn đề -
-
Lấy số đầu vào.
-
Lặp lại từ i =1 đến i * i <=num
-
Sau đó, kiểm tra xem num% i ==0, hãy kiểm tra
-
Nếu num% i ==i thì hãy đặt giá trị của product =(product * i)% 1e7
-
Khác Đặt sản phẩm là (product * i)% MAX và Đặt sản phẩm là (product * num / i)% MAX.
-
-
Trả lại sản phẩm.
Thuật toán
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
Ví dụ
#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; }
Đầu ra
Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
27