Find squares n where n+1 is prime: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add CLU) |
Not a robot (talk | contribs) (Add BCPL) |
||
Line 24: | Line 24: | ||
1 4 16 36 100 196 256 400 576 676 |
1 4 16 36 100 196 256 400 576 676 |
||
</pre> |
</pre> |
||
=={{header|BCPL}}== |
|||
<lang bcpl>get "libhdr" |
|||
manifest $( MAX = 1000 $) |
|||
let isqrt(s) = valof |
|||
$( let x0 = s>>1 and x1 = ? |
|||
if x0 = 0 resultis s |
|||
x1 := (x0 + s/x0)>>1 |
|||
while x1<x0 |
|||
$( x0 := x1 |
|||
x1 := (x0 + s/x0)>>1 |
|||
$) |
|||
resultis x0 |
|||
$) |
|||
let sieve(prime, n) be |
|||
$( 0!prime := false |
|||
1!prime := false |
|||
for i = 2 to n do i!prime := true |
|||
for p = 2 to isqrt(n) if p!prime |
|||
$( let c = p*p |
|||
while c<n |
|||
$( c!prime := false |
|||
c := c + p |
|||
$) |
|||
$) |
|||
$) |
|||
let square(n) = valof |
|||
$( let sq = isqrt(n) |
|||
resultis sq*sq = n |
|||
$) |
|||
let start() be |
|||
$( let prime = vec MAX |
|||
sieve(prime, MAX) |
|||
for i=2 to MAX if i!prime |
|||
$( let sq = i-1 |
|||
if square(sq) then writef("%N ",sq) |
|||
$) |
|||
wrch('*N') |
|||
$)</lang> |
|||
{{out}} |
|||
<pre>1 4 16 36 100 196 256 400 576 676</pre> |
|||
=={{header|CLU}}== |
=={{header|CLU}}== |
||
Line 68: | Line 114: | ||
{{out}} |
{{out}} |
||
<pre>1 4 16 36 100 196 256 400 576 676</pre> |
<pre>1 4 16 36 100 196 256 400 576 676</pre> |
||
=={{header|F_Sharp|F#}}== |
=={{header|F_Sharp|F#}}== |
||
This task uses [http://www.rosettacode.org/wiki/Extensible_prime_generator#The_functions Extensible Prime Generator (F#)] |
This task uses [http://www.rosettacode.org/wiki/Extensible_prime_generator#The_functions Extensible Prime Generator (F#)] |