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