Template:Task: Difference between revisions
Content added Content deleted
No edit summary |
No edit summary |
||
Line 17: | Line 17: | ||
<pre> |
<pre> |
||
> Search Size: 1000 |
> Search Size: 1000 |
||
> 35 twin prime pairs. |
|||
</pre> |
|||
=={{header|Java}}== |
|||
BigInteger implementation: |
|||
<lang Java> |
|||
import java.math.BigInteger; |
|||
import java.util.Scanner; |
|||
public class twinPrimes { |
|||
public static void main(String[] args) { |
|||
Scanner input = new Scanner(System.in); |
|||
System.out.println("Search Size: "); |
|||
BigInteger max = input.nextBigInteger(); |
|||
int counter = 0; |
|||
for(BigInteger x = new BigInteger("3"); x.compareTo(max) <= 0; x = x.add(BigInteger.ONE)){ |
|||
BigInteger sqrtNum = x.sqrt().add(BigInteger.ONE); |
|||
if(x.add(BigInteger.TWO).compareTo(max) <= 0) { |
|||
counter += findPrime(x.add(BigInteger.TWO), x.add(BigInteger.TWO).sqrt().add(BigInteger.ONE)) && findPrime(x, sqrtNum) ? 1 : 0; |
|||
} |
|||
} |
|||
System.out.println(counter + " twin prime pairs."); |
|||
} |
|||
public static boolean findPrime(BigInteger x, BigInteger sqrtNum){ |
|||
for(BigInteger divisor = BigInteger.TWO; divisor.compareTo(sqrtNum) <= 0; divisor = divisor.add(BigInteger.ONE)){ |
|||
if(x.remainder(divisor).compareTo(BigInteger.ZERO) == 0){ |
|||
return false; |
|||
} |
|||
} |
|||
return true; |
|||
} |
|||
} |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
> Search Size: |
|||
> 100 |
|||
> 8 twin prime pairs. |
|||
</pre> |
|||
<pre> |
|||
> Search Size: |
|||
> 1000 |
|||
> 35 twin prime pairs. |
> 35 twin prime pairs. |
||
</pre> |
</pre> |
Revision as of 05:47, 26 July 2020
Twin primes are pairs of natural numbers(P1 and P2) that satisfy the following:
- P1 and P2 are primes
- P1 + 2 = P2
Write a program that displays the number of twin primes that can be found under a user-inputted number.
Examples below:
- Output:
> Search Size: 100 > 8 twin prime pairs.
> Search Size: 1000 > 35 twin prime pairs.