质数,质数因子(输入一个正整数,按照从小到大的顺序输出它的所有质因子)

质数:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,否则称为合数

不能被其它自然数整除:被其它数取余不等于0

例:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )

/*
** 思路:一个数 质数从小到大,如果这个数取i的余等于0(能被i整除),说明这个数不是质数,
**      将这个数除i之后,再从头开始取余,直到从2到这个数的开平方根都不存在被整除的数
*/
let lines = parseInt(readline());
const arr = [];
let newLine = null;
function yuFunc(lines) {
  for (var i = 2; i * i <= lines; i++) {
    if (lines % i === 0) {
      newLine = lines / i;
      arr.push(i);
      yuFunc(newLine);
      break;
    }
  }
}
yuFunc(lines);
if (newLine != 1) {
  arr.push(newLine);
  console.log(arr.join(" "));
}

特性:质数因子肯定小于等于这个数的平方根,可以根据这个特性来减少运行时间

posted @ 2022-09-05 11:48  嘿!那个姑娘  阅读(620)  评论(0编辑  收藏  举报