使用 JavaScript 计算范围内减少到 1 的素数
问题
我们需要编写一个JavaScript函数,该函数接受两个数字的范围数组。我们的函数应该返回这些素数的计数,其数字的平方和最终产生1。
例如,23是一个质数,并且,
22 + 32 = 13 12 + 32 = 10 12 + 02 = 1
因此,23应该是一个有效数字。
示例
以下是代码-
const range = [2, 212];
String.prototype.reduce = Array.prototype.reduce;
const isPrime = (n) => {
if ( n<2 ) return false;
if ( n%2===0 ) return n===2;
if ( n%3===0 ) return n===3;
for ( let i=5; i*i<=n; i+=4 ) {
if ( n%i===0 ) return false;
i+=2;
if ( n%i===0 ) return false;
}
return true;
}
const desiredSeq = (n) => {
let t=[n];
while ( t.indexOf(n)===t.length-1 && n!==1 )
t.push(n=Number(String(n).reduce( (acc,v) => acc+v*v, 0 )));
return n===1;
}
const countDesiredPrimes = ([a, b]) => {
let res=0;
for ( ; a输出结果12
热门推荐
10 毛笔哥哥结婚祝福语简短
11 向国庆送祝福语简短
12 建队节祝福语简短
13 朋友喜得外孙简短祝福语
14 小店营业的祝福语简短
15 餐饮生日祝福语简短独特
16 鲜花英语祝福语卡片简短
17 男朋友暴富祝福语简短
18 婶婶拜年祝福语大全简短