- Notifications
You must be signed in to change notification settings - Fork 19.9k
/
Copy pathPronicNumber.java
51 lines (46 loc) · 1.8 KB
/
PronicNumber.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
packagecom.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)
*
* */
publicfinalclassPronicNumber {
privatePronicNumber() {
}
/**
* 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
*/
staticbooleanisPronic(intinputNumber) {
if (inputNumber == 0) {
returntrue;
}
// Iterating from 0 to input_number
for (inti = 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
returntrue;
}
}
// return false if product of i and (i+1) for all values from 0 to input_number is not
// equals input_number
returnfalse;
}
/**
* 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
*/
publicstaticbooleanisPronicNumber(intnumber) {
intsquareRoot = (int) Math.sqrt(number); // finding just smaller divisor of the number than its square root.
returnsquareRoot * (squareRoot + 1) == number;
}
}