在 JavaScript 中将数字表示为素数的幂和乘积
问题
我们需要编写一个接受正整数的JavaScript函数。我们的函数应该将这个数字表示为素数的某些幂的总和。
因此,对于数字n,我们的函数应该返回这样的字符串-
n = "(p1**n1)(p2**n2)...(pk**nk)"
其中p1、p2、p3..pk是质数,n1、n2、..nk是它们的非负幂,a**b代表a的b次幂。
示例
以下是代码-
const isPrime = num => {
for(let i = 2; i < num; i++){
if(num % i === 0){
return false;
}
};
return num > 1;
}
const count = (arr = [], n = 1) => {
for(const k in arr){
if(n % k === 0){
arr[k] += 1;
return count(arr, n / k)
}
};
return arr;
};
const primeFactors = (n) => {
const res = [];
for(let i = 2; i < n; i++){
if(isPrime(i)){
res.push(i);
}
};
const arr = [];
for(const el in res){
arr[el] = 0;
};
count(arr,n);
let str = '';
for(const x in arr){
if(arr[x] > 1){
str += '(%s**%s)' %(x,arr[x])
}else if(arr[x] === 1){
str += '(%s)' % (x)
};
};
return str
};
console.log(primeFactors(86240));输出结果(2**5)(5)(7**2)(11)
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短