Skip to content

Commit 0092d97

Browse files
added new method to check PerfectSquare
1 parent b190cb7 commit 0092d97

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/main/java/com/thealgorithms/maths/PerfectSquare.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,16 @@ public static boolean isPerfectSquare(final int number) {
1818
final int sqrt = (int) Math.sqrt(number);
1919
return sqrt * sqrt == number;
2020
}
21+
22+
/**
23+
* Check if a number is perfect square or not
24+
*
25+
* @param number number to be checked
26+
* @return {@code true} if {@code number} is perfect square, otherwise
27+
* {@code false}
28+
*/
29+
public static boolean isPerfectSquareUsingPow(long number) {
30+
long a = (long) Math.pow(number, 1.0 / 2);
31+
return a * a == number;
32+
}
2133
}

src/test/java/com/thealgorithms/maths/PerfectSquareTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@ public class PerfectSquareTest {
99
@ValueSource(ints = {0, 1, 2 * 2, 3 * 3, 4 * 4, 5 * 5, 6 * 6, 7 * 7, 8 * 8, 9 * 9, 10 * 10, 11 * 11, 123 * 123})
1010
void positiveTest(final int number) {
1111
Assertions.assertTrue(PerfectSquare.isPerfectSquare(number));
12+
Assertions.assertTrue(PerfectSquare.isPerfectSquareUsingPow(number));
1213
}
1314

1415
@ParameterizedTest
1516
@ValueSource(ints = {-1, -2, -3, -4, -5, -100, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 17, 99, 101, 257, 999, 1001})
1617
void negativeTest(final int number) {
1718
Assertions.assertFalse(PerfectSquare.isPerfectSquare(number));
19+
Assertions.assertFalse(PerfectSquare.isPerfectSquareUsingPow(number));
1820
}
1921
}

0 commit comments

Comments
 (0)