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

以上是 C ++中数字的乘积 的全部内容, 来源链接: utcz.com/z/341011.html

回到顶部