UNPKG

mathball

Version:

A JavaScript library for Competitive Programming

36 lines (28 loc) 827 B
"use strict"; /* 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; };