De Polignac numbers: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Changed to Wren S/H) |
(Added Euler) |
||
Line 709: | Line 709: | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
=={{header|Euler}}== |
|||
Basic task only.<br/> |
|||
Based on the Algol W sample, but as 3 is clearly not a de Polignac number, only considers odd primes. |
|||
'''begin''' '''new''' isOddPrime; |
|||
isOddPrime |
|||
<- ` '''formal''' n; |
|||
'''if''' n '''mod''' 2 = 0 |
|||
'''then''' '''false''' |
|||
'''else''' '''begin''' |
|||
'''new''' prime; '''new''' f; '''new''' f2; '''new''' toNext; '''label''' primeLoop; |
|||
prime <- '''true'''; |
|||
f <- 3; |
|||
f2 <- 9; |
|||
toNext <- 16; |
|||
primeLoop: '''if''' f2 <= n '''and''' prime '''then''' '''begin''' |
|||
prime <- n '''mod''' f <> 0; |
|||
f <- f + 2; |
|||
f2 <- toNext; |
|||
toNext <- toNext + 8; |
|||
'''goto''' primeLoop '''end''' '''else''' 0; |
|||
prime |
|||
'''end''' |
|||
'; |
|||
'''begin''' '''new''' n; '''new''' count; '''label''' forI; |
|||
count <- 0; |
|||
n <- -1; |
|||
forI: '''if''' '''begin''' n <- n + 2; count < 50 '''end''' '''then''' '''begin''' |
|||
'''new''' found; '''new''' p; '''new''' powerOf2; '''label''' p2Loop; |
|||
found <- '''false'''; |
|||
powerOf2 <- 1; |
|||
p2Loop: '''if''' '''not''' found '''and''' n > powerOf2 '''then''' '''begin''' |
|||
found <- isOddPrime( n - powerOf2 ); |
|||
powerOf2 <- powerOf2 * 2; |
|||
'''goto''' p2Loop '''end''' '''else''' 0; |
|||
'''if''' '''not''' found '''then''' '''begin''' |
|||
count <- count + 1; |
|||
'''out''' n |
|||
'''end''' '''else''' 0; |
|||
'''goto''' forI '''end''' '''else''' 0 |
|||
'''end''' |
|||
'''end''' $ |
|||
{{out}} |
|||
<pre> |
|||
NUMBER 1 |
|||
NUMBER 127 |
|||
NUMBER 149 |
|||
... |
|||
NUMBER 2171 |
|||
NUMBER 2203 |
|||
NUMBER 2213 |
|||
</pre> |
|||
=={{header|FreeBASIC}}== |
=={{header|FreeBASIC}}== |