সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা দুটি সংখ্যার একটি পরিসীমা অ্যারে নেয়৷ আমাদের ফাংশনটি এমন মৌলিক সংখ্যাগুলির গণনা প্রদান করবে যার অঙ্কের বর্গক্ষেত্র শেষ পর্যন্ত 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<b; a++ ) if ( isPrime(a) && desiredSeq(a) ) res++; return res; } console.log(countDesiredPrimes(range));
আউটপুট
12