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