mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-04 07:29:47 +08:00

* feat: Add pronic number implementation * Add test to Math * Minor fixes * Minor style fixes * refactor: Store square root in a variable * Minor refactoring * fix: Change pronic number check logic Reduced time complexity from O(sqrt(n)) to O(1) * Minor style fixes * fix: Update pronic number check boolean equation * refactor: Change pronic number check condition * refactor: Add tests to Math * Minor style fixes * refactor: Change unit test logic
28 lines
822 B
JavaScript
28 lines
822 B
JavaScript
/*
|
|
* Author: Akshay Dubey (https://github.com/itsAkshayDubey)
|
|
* Pronic Number: https://en.wikipedia.org/wiki/Pronic_number
|
|
* function to check if number is pronic.
|
|
* return true if number is pronic.
|
|
* else false
|
|
*/
|
|
|
|
/**
|
|
* @function isPronic
|
|
* @description -> Checking if number is pronic using product of two consecutive numbers
|
|
* If number is a product of two consecutive numbers, then it is pronic
|
|
* therefore, the function will return true
|
|
*
|
|
* If number is not a product of two consecutive numbers, then it is not pronic
|
|
* therefore, the function will return false
|
|
* @param {number} number
|
|
* @returns {boolean}
|
|
*/
|
|
|
|
export const isPronic = (number) => {
|
|
if (number === 0) {
|
|
return true
|
|
}
|
|
const sqrt = Math.sqrt(number)
|
|
return sqrt % 1 !== 0 && Math.ceil(sqrt) * Math.floor(sqrt) === number
|
|
}
|