Template:Task: Difference between revisions
Content added Content deleted
No edit summary |
(include documentation explaining this template's current structure) |
||
(8 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{infobox_begin}}{{Task/Icon}}'''{{PAGENAME}}'''<includeonly>{{#set:is task=true}}</includeonly><br/> |
|||
{{task|Twin Prime Conjecture}}[[Category:Primes]]{{requires|Input}} |
|||
You are encouraged to [[Rosetta Code:Solve a Task|solve this task]] according to the task description, using any language you may know.<includeonly>[[Category:Programming Tasks]]{{#if:{{{1|}}}|[[Category:{{{1}}}]]|[[Category:Solutions by Programming Task]]}}</includeonly>{{infobox_end}}<noinclude> |
|||
{{template|Task identifier}} |
|||
<hr /> |
|||
Twin primes are pairs of natural numbers(P1 and P2) that satisfy the following: |
|||
This template identifies a page as a task page and adds it to [[:Category:Programming Tasks]] and either the category identified by the first argument to the template instance or (if none is supplied) [[:Category:Solutions by Programming Task]]</noinclude> |
|||
# 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: |
|||
{{out}} |
|||
<pre> |
|||
> Search Size: 100 |
|||
> 8 twin prime pairs. |
|||
</pre> |
|||
<pre> |
|||
> 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. |
|||
</pre> |
Latest revision as of 12:28, 15 October 2022
Task
You are encouraged to solve this task according to the task description, using any language you may know.
You are encouraged to solve this task according to the task description, using any language you may know.
This template identifies a page as a task page and adds it to Category:Programming Tasks and either the category identified by the first argument to the template instance or (if none is supplied) Category:Solutions by Programming Task