Add twin prime (#3312)

This commit is contained in:
Akshay Dubey 2022-10-14 15:06:26 +05:30 committed by GitHub
parent c805437c0c
commit efac505a6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 92 additions and 0 deletions

View 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;
}
}

View 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);
}
}