mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
52 lines
1.8 KiB
Java
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;
|
|
}
|
|
}
|