Find squares n where n+1 is prime: Difference between revisions

Content added Content deleted
(Added Sidef)
m (syntax highlighting fixup automation)
Line 6: Line 6:
=={{header|ALGOL 68}}==
=={{header|ALGOL 68}}==
{{libheader|ALGOL 68-primes}}
{{libheader|ALGOL 68-primes}}
<lang algol68>BEGIN # find squares n where n + 1 is prime #
<syntaxhighlight lang="algol68">BEGIN # find squares n where n + 1 is prime #
PR read "primes.incl.a68" PR
PR read "primes.incl.a68" PR
[]BOOL prime = PRIMESIEVE 1 000; # construct a sieve of primes up to 1000 #
[]BOOL prime = PRIMESIEVE 1 000; # construct a sieve of primes up to 1000 #
Line 19: Line 19:
FI
FI
OD
OD
END</lang>
END</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 27: Line 27:
=={{header|AutoHotkey}}==
=={{header|AutoHotkey}}==
{{trans|FreeBASIC}}
{{trans|FreeBASIC}}
<lang AutoHotkey>n := 0
<syntaxhighlight lang="autohotkey">n := 0
while ((n2 := (n+=2)**2) < 1000)
while ((n2 := (n+=2)**2) < 1000)
if isPrime(n2+1)
if isPrime(n2+1)
Line 39: Line 39:
return False
return False
return True
return True
}</lang>
}</syntaxhighlight>
{{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|AWK}}==
=={{header|AWK}}==
<syntaxhighlight lang="awk">
<lang AWK>
# syntax: GAWK -f FIND_SQUARES_N_WHERE_N+1_IS_PRIME.AWK
# syntax: GAWK -f FIND_SQUARES_N_WHERE_N+1_IS_PRIME.AWK
BEGIN {
BEGIN {
Line 77: Line 77:
return(1)
return(1)
}
}
</syntaxhighlight>
</lang>
{{out}}
{{out}}
<pre>
<pre>
Line 85: Line 85:


=={{header|BASIC}}==
=={{header|BASIC}}==
<lang basic>10 DEFINT A-Z: N=1000
<syntaxhighlight lang="basic">10 DEFINT A-Z: N=1000
20 DIM C(N)
20 DIM C(N)
30 FOR P=2 TO SQR(N)
30 FOR P=2 TO SQR(N)
Line 94: Line 94:
80 X=I-1: R=SQR(X)
80 X=I-1: R=SQR(X)
90 IF R*R=X THEN PRINT X;
90 IF R*R=X THEN PRINT X;
100 NEXT</lang>
100 NEXT</syntaxhighlight>
{{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|BCPL}}==
=={{header|BCPL}}==
<lang bcpl>get "libhdr"
<syntaxhighlight lang="bcpl">get "libhdr"
manifest $( MAX = 1000 $)
manifest $( MAX = 1000 $)


Line 140: Line 140:
$)
$)
wrch('*N')
wrch('*N')
$)</lang>
$)</syntaxhighlight>
{{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|C}}==
=={{header|C}}==
<lang c>#include <stdio.h>
<syntaxhighlight lang="c">#include <stdio.h>
#include <stdbool.h>
#include <stdbool.h>
#include <math.h>
#include <math.h>
Line 173: Line 173:
printf("\n");
printf("\n");
return 0;
return 0;
}</lang>
}</syntaxhighlight>
{{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|CLU}}==
=={{header|CLU}}==
<lang clu>isqrt = proc (s: int) returns (int)
<syntaxhighlight lang="clu">isqrt = proc (s: int) returns (int)
x0: int := s/2
x0: int := s/2
if x0=0 then return(s) end
if x0=0 then return(s) end
Line 217: Line 217:
if is_square(n) then stream$puts(po, int$unparse(n) || " ") end
if is_square(n) then stream$puts(po, int$unparse(n) || " ") end
end
end
end start_up</lang>
end start_up</syntaxhighlight>
{{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|COBOL}}==
=={{header|COBOL}}==
<lang cobol> IDENTIFICATION DIVISION.
<syntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
PROGRAM-ID. SQUARE-PLUS-1-PRIME.
PROGRAM-ID. SQUARE-PLUS-1-PRIME.
Line 260: Line 260:
CHECK-DSOR.
CHECK-DSOR.
DIVIDE P BY DSOR GIVING DIVTEST.
DIVIDE P BY DSOR GIVING DIVTEST.
IF DIVISIBLE, MOVE SPACE TO PRIME-FLAG.</lang>
IF DIVISIBLE, MOVE SPACE TO PRIME-FLAG.</syntaxhighlight>
{{out}}
{{out}}
<pre>0001
<pre>0001
Line 274: Line 274:


=={{header|Cowgol}}==
=={{header|Cowgol}}==
<lang cowgol>include "cowgol.coh";
<syntaxhighlight lang="cowgol">include "cowgol.coh";


const MAX := 1000;
const MAX := 1000;
Line 317: Line 317:
end if;
end if;
i := i + 1;
i := i + 1;
end loop;</lang>
end loop;</syntaxhighlight>
{{out}}
{{out}}
<pre>1
<pre>1
Line 332: Line 332:
=={{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#)]
<lang fsharp>
<syntaxhighlight lang="fsharp">
// Find squares n where n+1 is prime. Nigel Galloway: December 17th., 2021
// Find squares n where n+1 is prime. Nigel Galloway: December 17th., 2021
seq{yield 1; for g in 2..2..30 do let n=g*g in if isPrime(n+1) then yield n}|>Seq.iter(printf "%d "); printfn ""
seq{yield 1; for g in 2..2..30 do let n=g*g in if isPrime(n+1) then yield n}|>Seq.iter(printf "%d "); printfn ""
</syntaxhighlight>
</lang>
{{out}}
{{out}}
<pre>
<pre>
Line 342: Line 342:


=={{header|Fermat}}==
=={{header|Fermat}}==
<lang fermat>!!1;
<syntaxhighlight lang="fermat">!!1;
i:=2;
i:=2;
i2:=4;
i2:=4;
Line 349: Line 349:
i:+2;
i:+2;
i2:=i^2;
i2:=i^2;
od;</lang>
od;</syntaxhighlight>
{{out}}<pre>1
{{out}}<pre>1
4
4
Line 363: Line 363:


=={{header|FreeBASIC}}==
=={{header|FreeBASIC}}==
<lang freebasic>function isprime(n as integer) as boolean
<syntaxhighlight lang="freebasic">function isprime(n as integer) as boolean
if n<0 then return isprime(-n)
if n<0 then return isprime(-n)
if n<2 then return false
if n<2 then return false
Line 382: Line 382:
n+=2
n+=2
n2=n^2
n2=n^2
wend</lang>
wend</syntaxhighlight>
{{out}}<pre> 1 4 16 36 100 196 256 400 576 676</pre>
{{out}}<pre> 1 4 16 36 100 196 256 400 576 676</pre>


Line 388: Line 388:
{{trans|Wren}}
{{trans|Wren}}
{{libheader|Go-rcu}}
{{libheader|Go-rcu}}
<lang go>package main
<syntaxhighlight lang="go">package main


import (
import (
Line 413: Line 413:
fmt.Println("There are", len(squares), "square numbers 'n' where 'n+1' is prime, viz:")
fmt.Println("There are", len(squares), "square numbers 'n' where 'n+1' is prime, viz:")
fmt.Println(squares)
fmt.Println(squares)
}</lang>
}</syntaxhighlight>


{{out}}
{{out}}
Line 422: Line 422:


=={{header|GW-BASIC}}==
=={{header|GW-BASIC}}==
<lang gwbasic>10 PRINT 1
<syntaxhighlight lang="gwbasic">10 PRINT 1
20 N = 2 : N2 = 4
20 N = 2 : N2 = 4
30 WHILE N2 < 1000
30 WHILE N2 < 1000
Line 441: Line 441:
180 I=I +2
180 I=I +2
190 WEND
190 WEND
200 RETURN</lang>
200 RETURN</syntaxhighlight>
{{out}}<pre>1
{{out}}<pre>1
4
4
Line 455: Line 455:


=={{header|J}}==
=={{header|J}}==
<lang j>((<.=])@%:#+)@(i.&.(p:^:_1)-1:) 1000</lang>
<syntaxhighlight lang="j">((<.=])@%:#+)@(i.&.(p:^:_1)-1:) 1000</syntaxhighlight>
{{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>
Line 465: Line 465:
See [[Erdős-primes#jq]] for a suitable definition of `is_prime` as used here.
See [[Erdős-primes#jq]] for a suitable definition of `is_prime` as used here.


<lang jq>def squares_for_which_successor_is_prime:
<syntaxhighlight lang="jq">def squares_for_which_successor_is_prime:
(. // infinite) as $limit
(. // infinite) as $limit
| {i:1, sq: 1}
| {i:1, sq: 1}
Line 472: Line 472:
| select((. + 1)|is_prime) ;
| select((. + 1)|is_prime) ;


1000 | squares_for_which_successor_is_prime</lang>
1000 | squares_for_which_successor_is_prime</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 488: Line 488:


=={{header|Julia}}==
=={{header|Julia}}==
<lang julia>using Primes
<syntaxhighlight lang="julia">using Primes


isintegersquarebeforeprime(n) = isqrt(n)^2 == n && isprime(n + 1)
isintegersquarebeforeprime(n) = isqrt(n)^2 == n && isprime(n + 1)


foreach(p -> print(lpad(last(p), 5)), filter(isintegersquarebeforeprime, 1:1000))
foreach(p -> print(lpad(last(p), 5)), filter(isintegersquarebeforeprime, 1:1000))
</lang>{{out}}<pre> 1 4 16 36 100 196 256 400 576 676 </pre>
</syntaxhighlight>{{out}}<pre> 1 4 16 36 100 196 256 400 576 676 </pre>


=={{header|MAD}}==
=={{header|MAD}}==
<lang MAD> NORMAL MODE IS INTEGER
<syntaxhighlight lang="mad"> NORMAL MODE IS INTEGER
BOOLEAN PRIME
BOOLEAN PRIME
DIMENSION PRIME(1000)
DIMENSION PRIME(1000)
Line 528: Line 528:


VECTOR VALUES FMT = $I4*$
VECTOR VALUES FMT = $I4*$
END OF PROGRAM</lang>
END OF PROGRAM</syntaxhighlight>
{{out}}
{{out}}
<pre> 1
<pre> 1
Line 541: Line 541:
676</pre>
676</pre>
=={{header|Mathematica}} / {{header|Wolfram Language}}==
=={{header|Mathematica}} / {{header|Wolfram Language}}==
<lang Mathematica>Cases[Table[n^2, {n, 101}], _?(PrimeQ[# + 1] &)]</lang>
<syntaxhighlight lang="mathematica">Cases[Table[n^2, {n, 101}], _?(PrimeQ[# + 1] &)]</syntaxhighlight>
{{out}}<pre>
{{out}}<pre>
{1,4,16,36,100,196,256,400,576,676,1296,1600,2916,3136,4356,5476,7056,8100,8836}
{1,4,16,36,100,196,256,400,576,676,1296,1600,2916,3136,4356,5476,7056,8100,8836}
Line 547: Line 547:


=={{header|Modula-2}}==
=={{header|Modula-2}}==
<lang modula2>MODULE SquareAlmostPrime;
<syntaxhighlight lang="modula2">MODULE SquareAlmostPrime;
FROM InOut IMPORT WriteCard, WriteLn;
FROM InOut IMPORT WriteCard, WriteLn;
FROM MathLib IMPORT sqrt;
FROM MathLib IMPORT sqrt;
Line 590: Line 590:
END;
END;
END;
END;
END SquareAlmostPrime.</lang>
END SquareAlmostPrime.</syntaxhighlight>
{{out}}
{{out}}
<pre> 1
<pre> 1
Line 606: Line 606:
This is not terribly efficient, but it does show off the issquare and isprime functions.
This is not terribly efficient, but it does show off the issquare and isprime functions.


<lang parigp>for(n = 1, 1000, if(issquare(n)&&isprime(n+1),print(n)))</lang>
<syntaxhighlight lang="parigp">for(n = 1, 1000, if(issquare(n)&&isprime(n+1),print(n)))</syntaxhighlight>


{{out}}<pre>1
{{out}}<pre>1
Line 621: Line 621:
=={{header|Perl}}==
=={{header|Perl}}==
===Simple and Clear===
===Simple and Clear===
<lang perl>#!/usr/bin/perl
<syntaxhighlight lang="perl">#!/usr/bin/perl
use strict; # https://rosettacode.org/wiki/Find_squares_n_where_n%2B1_is_prime
use strict; # https://rosettacode.org/wiki/Find_squares_n_where_n%2B1_is_prime
use warnings;
use warnings;
Line 627: Line 627:


my @answer = grep is_square($_), map $_ - 1, @{ primes(1000) };
my @answer = grep is_square($_), map $_ - 1, @{ primes(1000) };
print "@answer\n";</lang>
print "@answer\n";</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 634: Line 634:
===More Than One Way===
===More Than One Way===
TMTOWTDI, right? So do it.
TMTOWTDI, right? So do it.
<lang perl>use strict;
<syntaxhighlight lang="perl">use strict;
use warnings;
use warnings;
use feature 'say';
use feature 'say';
Line 649: Line 649:


# or dispense with the module and find primes the slowest way possible
# or dispense with the module and find primes the slowest way possible
(1 x (1+$_**2)) !~ /^(11+)\1+$/ and say $_**2 for 1 .. int sqrt 1000;</lang>
(1 x (1+$_**2)) !~ /^(11+)\1+$/ and say $_**2 for 1 .. int sqrt 1000;</syntaxhighlight>
{{out}}
{{out}}
In all cases:
In all cases:
Line 664: Line 664:


=={{header|Phix}}==
=={{header|Phix}}==
<!--<lang Phix>(phixonline)-->
<!--<syntaxhighlight lang="phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">}</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">}</span>
Line 676: Line 676:
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%V\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">res</span><span style="color: #0000FF;">})</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%V\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">res</span><span style="color: #0000FF;">})</span>
<!--</lang>-->
<!--</syntaxhighlight>-->
{{out}}
{{out}}
<pre>
<pre>
Line 682: Line 682:
</pre>
</pre>
Alternative, same output, but 168 iterations/tests compared to just 16 by the above:
Alternative, same output, but 168 iterations/tests compared to just 16 by the above:
<!--<lang Phix>(phixonline)-->
<!--<syntaxhighlight lang="phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">sq</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">n</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">return</span> <span style="color: #004080;">integer</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">sqrt</span><span style="color: #0000FF;">(</span><span style="color: #000000;">n</span><span style="color: #0000FF;">))</span> <span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">sq</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">n</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">return</span> <span style="color: #004080;">integer</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">sqrt</span><span style="color: #0000FF;">(</span><span style="color: #000000;">n</span><span style="color: #0000FF;">))</span> <span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #7060A8;">pp</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">filter</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">sq_sub</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">get_primes_le</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1000</span><span style="color: #0000FF;">),</span><span style="color: #000000;">1</span><span style="color: #0000FF;">),</span><span style="color: #000000;">sq</span><span style="color: #0000FF;">))</span>
<span style="color: #7060A8;">pp</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">filter</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">sq_sub</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">get_primes_le</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1000</span><span style="color: #0000FF;">),</span><span style="color: #000000;">1</span><span style="color: #0000FF;">),</span><span style="color: #000000;">sq</span><span style="color: #0000FF;">))</span>
<!--</lang>-->
<!--</syntaxhighlight>-->
Drop the filter to get the 168 (cheekily humorous) squares-of-integers-and-non-integers result of Raku (and format/arrange them identically):
Drop the filter to get the 168 (cheekily humorous) squares-of-integers-and-non-integers result of Raku (and format/arrange them identically):
<!--<lang Phix>(phixonline)-->
<!--<syntaxhighlight lang="phix">(phixonline)-->
<span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">join_by</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">apply</span><span style="color: #0000FF;">(</span><span style="color: #004600;">true</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">,{{</span><span style="color: #008000;">"%3d"</span><span style="color: #0000FF;">},</span><span style="color: #7060A8;">sq_sub</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">get_primes_le</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1000</span><span style="color: #0000FF;">),</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)}),</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">20</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" "</span><span style="color: #0000FF;">))</span>
<span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">join_by</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">apply</span><span style="color: #0000FF;">(</span><span style="color: #004600;">true</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">,{{</span><span style="color: #008000;">"%3d"</span><span style="color: #0000FF;">},</span><span style="color: #7060A8;">sq_sub</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">get_primes_le</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1000</span><span style="color: #0000FF;">),</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)}),</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">20</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" "</span><span style="color: #0000FF;">))</span>
<!--</lang>-->
<!--</syntaxhighlight>-->


=={{header|Python}}==
=={{header|Python}}==
<lang python>
<syntaxhighlight lang="python">
limit = 1000
limit = 1000
print("working...")
print("working...")
Line 715: Line 715:
print()
print()
print("done...")
print("done...")
</syntaxhighlight>
</lang>
{{out}}
{{out}}
<pre>
<pre>
Line 725: Line 725:
=={{header|Raku}}==
=={{header|Raku}}==
Use up to to one thousand (1,000) rather than up to one (1.000) as otherwise it would be a pretty short list...
Use up to to one thousand (1,000) rather than up to one (1.000) as otherwise it would be a pretty short list...
<lang perl6>say ({$++²}…^*>Ⅿ).grep: (*+1).is-prime</lang>
<syntaxhighlight lang="raku" line>say ({$++²}…^*>Ⅿ).grep: (*+1).is-prime</syntaxhighlight>
{{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>


Although, technically, there is absolutely nothing in the task directions specifying that '''n''' needs to be the square of an ''integer''. So, more accurately...
Although, technically, there is absolutely nothing in the task directions specifying that '''n''' needs to be the square of an ''integer''. So, more accurately...
<lang perl6>put (^Ⅿ).grep(*.is-prime).map(*-1).batch(20)».fmt("%3d").join: "\n"</lang>
<syntaxhighlight lang="raku" line>put (^Ⅿ).grep(*.is-prime).map(*-1).batch(20)».fmt("%3d").join: "\n"</syntaxhighlight>
{{out}}
{{out}}
<pre> 1 2 4 6 10 12 16 18 22 28 30 36 40 42 46 52 58 60 66 70
<pre> 1 2 4 6 10 12 16 18 22 28 30 36 40 42 46 52 58 60 66 70
Line 743: Line 743:


=={{header|Ring}}==
=={{header|Ring}}==
<lang ring>
<syntaxhighlight lang="ring">
load "stdlib.ring"
load "stdlib.ring"
row = 0
row = 0
Line 766: Line 766:
next
next
return 0
return 0
</syntaxhighlight>
</lang>
{{out}}
{{out}}
<pre>
<pre>
Line 785: Line 785:


=={{header|Sidef}}==
=={{header|Sidef}}==
<lang ruby>1..1000.isqrt -> map { _**2 }.grep { is_prime(_+1) }.say</lang>
<syntaxhighlight lang="ruby">1..1000.isqrt -> map { _**2 }.grep { is_prime(_+1) }.say</syntaxhighlight>
{{out}}
{{out}}
<pre>
<pre>
Line 792: Line 792:


=={{header|Tiny BASIC}}==
=={{header|Tiny BASIC}}==
<lang tinybasic> PRINT 1
<syntaxhighlight lang="tinybasic"> PRINT 1
LET N = 2
LET N = 2
LET M = 4
LET M = 4
Line 808: Line 808:
IF I*I < J THEN GOTO 30
IF I*I < J THEN GOTO 30
LET P = 1
LET P = 1
RETURN</lang>
RETURN</syntaxhighlight>
{{out}}<pre>1
{{out}}<pre>1
4
4
Line 822: Line 822:
=={{header|Wren}}==
=={{header|Wren}}==
{{libheader|Wren-math}}
{{libheader|Wren-math}}
<lang ecmascript>import "./math" for Int
<syntaxhighlight lang="ecmascript">import "./math" for Int


var squares = []
var squares = []
Line 833: Line 833:
}
}
System.print("There are %(squares.count) square numbers 'n' where 'n+1' is prime, viz:")
System.print("There are %(squares.count) square numbers 'n' where 'n+1' is prime, viz:")
System.print(squares)</lang>
System.print(squares)</syntaxhighlight>


{{out}}
{{out}}
Line 842: Line 842:


=={{header|XPL0}}==
=={{header|XPL0}}==
<lang XPL0>func IsPrime(N); \Return 'true' if N is prime
<syntaxhighlight lang="xpl0">func IsPrime(N); \Return 'true' if N is prime
int N, I;
int N, I;
[if N <= 2 then return N = 2;
[if N <= 2 then return N = 2;
Line 857: Line 857:
if IsPrime(N*N+1) then
if IsPrime(N*N+1) then
[IntOut(0, N*N); ChOut(0, ^ )];
[IntOut(0, N*N); ChOut(0, ^ )];
]</lang>
]</syntaxhighlight>


{{out}}
{{out}}