给定一个数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的值=(product * i)%1e7
否则将产品设置为(product * i)%MAX,将产品设置为(product * 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 //查找因素的乘积 long long productfactor(int num){ long long product = 1; for (int i = 1; i * i <= num; i++){ if (num % i == 0){ //相等因子应该只相乘一次 if (num / i == i) product = (product * i) % MAX; //否则都乘以 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