Add twin prime (#3312)
This commit is contained in:
parent
c805437c0c
commit
efac505a6d
32
src/main/java/com/thealgorithms/maths/TwinPrime.java
Normal file
32
src/main/java/com/thealgorithms/maths/TwinPrime.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package com.thealgorithms.maths;
|
||||||
|
/*
|
||||||
|
* Java program to find 'twin prime' of a prime number
|
||||||
|
* Twin Prime: Twin prime of a number n is (n+2)
|
||||||
|
* if and only if n & (n+2) are prime.
|
||||||
|
* Wikipedia: https://en.wikipedia.org/wiki/Twin_prime
|
||||||
|
*
|
||||||
|
* Author: Akshay Dubey (https://github.com/itsAkshayDubey)
|
||||||
|
*
|
||||||
|
* */
|
||||||
|
|
||||||
|
public class TwinPrime {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns twin prime of the integer value passed as argument
|
||||||
|
*
|
||||||
|
* @param input_number Integer value of which twin prime is to be found
|
||||||
|
* @return (number + 2) if number and (number + 2) are prime, -1 otherwise
|
||||||
|
*/
|
||||||
|
static int getTwinPrime(int inputNumber) {
|
||||||
|
|
||||||
|
//if inputNumber and (inputNumber + 2) are both prime
|
||||||
|
//then return (inputNumber + 2) as a result
|
||||||
|
if(PrimeCheck.isPrime(inputNumber) && PrimeCheck.isPrime(inputNumber + 2) ) {
|
||||||
|
return inputNumber + 2;
|
||||||
|
}
|
||||||
|
//if any one from inputNumber and (inputNumber + 2) or if both of them are not prime
|
||||||
|
//then return -1 as a result
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
60
src/test/java/com/thealgorithms/maths/TwinPrimeTest.java
Normal file
60
src/test/java/com/thealgorithms/maths/TwinPrimeTest.java
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
package com.thealgorithms.maths;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
class TwinPrimeTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldReturn7() {
|
||||||
|
//given
|
||||||
|
int number = 5;
|
||||||
|
int expectedResult = 7;
|
||||||
|
|
||||||
|
//when
|
||||||
|
int actualResult = TwinPrime.getTwinPrime(number);
|
||||||
|
|
||||||
|
//then
|
||||||
|
assertEquals(expectedResult,actualResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldReturn5() {
|
||||||
|
//given
|
||||||
|
int number = 3;
|
||||||
|
int expectedResult = 5;
|
||||||
|
|
||||||
|
//when
|
||||||
|
int actualResult = TwinPrime.getTwinPrime(number);
|
||||||
|
|
||||||
|
//then
|
||||||
|
assertEquals(expectedResult,actualResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldReturnNegative1() {
|
||||||
|
//given
|
||||||
|
int number = 4;
|
||||||
|
int expectedResult = -1;
|
||||||
|
|
||||||
|
//when
|
||||||
|
int actualResult = TwinPrime.getTwinPrime(number);
|
||||||
|
|
||||||
|
//then
|
||||||
|
assertEquals(expectedResult,actualResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldReturn19() {
|
||||||
|
//given
|
||||||
|
int number = 17;
|
||||||
|
int expectedResult = 19;
|
||||||
|
|
||||||
|
//when
|
||||||
|
int actualResult = TwinPrime.getTwinPrime(number);
|
||||||
|
|
||||||
|
//then
|
||||||
|
assertEquals(expectedResult,actualResult);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user