mathball
Version:
A JavaScript library for Competitive Programming
36 lines (28 loc) • 827 B
JavaScript
;
/* Function to check if number is a stormer number
Function name: isStormer()
*/
var validate = require("../validation/positive-integer");
function maxPrimeFactor(inp) {
var maxPrime = 1;
var temp = inp;
//testing for all multiples of 2
while (temp % 2 === 0) {
maxPrime = 2;
temp = temp / 2;
}
//for the remaining odd numbers. Note that prime numbers will remove their non-prime multiples BEFORE any
//non- prime number can appear
for (var i = 3; i <= temp; i += 2) {
while (inp % i === 0) {
maxPrime = i;
inp = inp / i;
}
}
return maxPrime;
}
exports.check = function (n) {
validate(n, 'isStormer');
var largPFactor = maxPrimeFactor(n * n + 1);
return largPFactor >= 2 * n ? true : false;
};