C ++中数字的乘积

给定一个数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