Files
Java/src/main/java/com/thealgorithms/maths/PronicNumber.java
2024-10-26 11:19:16 +00:00

52 lines
1.8 KiB
Java

package com.thealgorithms.maths;
/*
* Java program for Pronic Number
* Pronic Number: A number n is a pronic number if
* it is equal to product of two consecutive numbers m and m+1.
* Wikipedia: https://en.wikipedia.org/wiki/Pronic_number
*
* Author: Akshay Dubey (https://github.com/itsAkshayDubey)
*
* */
public final class PronicNumber {
private PronicNumber() {
}
/**
* This method checks if the given number is pronic number or non-pronic number
*
* @param inputNumber Integer value which is to be checked if is a pronic number or not
* @return true if input number is a pronic number, false otherwise
*/
static boolean isPronic(int inputNumber) {
if (inputNumber == 0) {
return true;
}
// Iterating from 0 to input_number
for (int i = 0; i <= inputNumber; i++) {
// Checking if product of i and (i+1) is equals input_number
if (i * (i + 1) == inputNumber && i != inputNumber) {
// return true if product of i and (i+1) is equals input_number
return true;
}
}
// return false if product of i and (i+1) for all values from 0 to input_number is not
// equals input_number
return false;
}
/**
* This method checks if the given number is pronic number or non-pronic number using square root of number for finding divisors
*
* @param number Integer value which is to be checked if is a pronic number or not
* @return true if input number is a pronic number, false otherwise
*/
public static boolean isPronicNumber(int number) {
int squareRoot = (int) Math.sqrt(number); // finding just smaller divisor of the number than its square root.
return squareRoot * (squareRoot + 1) == number;
}
}