Javascript-素数,无法正确格式化输出

Javascript-素数,无法正确格式化输出,javascript,Javascript,我有这个代码来找到一个给定数的素数因子。我想我得到了答案,但输出与我想要的不一样 我希望在这些限制范围内: 使用循环(for或while)和条件(if…else) 仅使用内置函数.push()和/或.join()(如果需要) 不要使用ES6特定的功能 我需要以上的限制,因为我想先学习基础知识 代码如下: 函数primeFactor(num){ var因子=“”, 除法器=2; while(num>2){ if(num%divider==0){ 因子+=除法器; num=num/除法器; }

我有这个代码来找到一个给定数的素数因子。我想我得到了答案,但输出与我想要的不一样

我希望在这些限制范围内:

  • 使用循环(
    for
    while
    )和条件(
    if…else
  • 仅使用内置函数
    .push()
    和/或
    .join()
    (如果需要)
  • 不要使用ES6特定的功能
我需要以上的限制,因为我想先学习基础知识

代码如下:

函数primeFactor(num){
var因子=“”,
除法器=2;
while(num>2){
if(num%divider==0){
因子+=除法器;
num=num/除法器;
}
否则{
除法器++;
}
}
回报系数;
}
console.log(primeFactor(90));//2对1的幂,3对2的幂,5对1的幂
console.log(primeFactor(168));//2对3的幂,3对1的幂,7对1的幂
console.log(primeFactor(44));//2对2的幂,11对1的幂
console.log(primeFactor(55));//5对1的幂,11对1的幂
console.log(primeFactor(26));//2对1的幂,13对1的幂

console.log(primeFactor(17));//17到1的幂
您需要一个额外的变量来计算幂。在给定限制的情况下,让
factors
成为一个数组,并且仅在末尾将其转换为带有逗号分隔符的字符串:

函数primeFactor(num){
var factors=[],//稍后使用数组转换为字符串
除法器=2,
power;//用于计算幂的新变量
while(num>2){
功率=0;
while(num%divider==0){//loop而不是IF
power++;
num=num/除法器;
}
如果(power>0){//有东西要输出
因子。将(除法器+”推到“+幂次方);//添加到数组中
}
除法器++;
}
返回因子。join(,“”;//将其设置为字符串
}
console.log(primeFactor(90));//2对1的幂,3对2的幂,5对1的幂
console.log(primeFactor(168));//2对3的幂,3对1的幂,7对1的幂
console.log(primeFactor(44));//2对2的幂,11对1的幂
console.log(primeFactor(55));//5对1的幂,11对1的幂
console.log(primeFactor(26));//2对1的幂,13对1的幂

console.log(primeFactor(17));//17到1的幂
给定数字的素数是什么意思?您期望的输出是什么?您在代码注释中输入的是预期的输出吗?如果是这样,请在问题的正文中再次明确说明。正确的答案是什么?请解释你想要的输出,就像你已经被问过两次一样!!!如果是注释中的内容,您的代码甚至不需要半次尝试,因为您的代码中任何地方都没有该文本,您可以提前停止循环:
while(divider*divider 1
然后
num
是您的最后一个素数。您可以跳过中间的所有数字。