Find squares n where n+1 is prime: Difference between revisions
Content added Content deleted
(Added Sidef) |
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
||
Line 6: | Line 6: | ||
=={{header|ALGOL 68}}== |
=={{header|ALGOL 68}}== |
||
{{libheader|ALGOL 68-primes}} |
{{libheader|ALGOL 68-primes}} |
||
< |
<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</ |
END</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 27: | Line 27: | ||
=={{header|AutoHotkey}}== |
=={{header|AutoHotkey}}== |
||
{{trans|FreeBASIC}} |
{{trans|FreeBASIC}} |
||
< |
<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 |
||
}</ |
}</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}}== |
||
< |
<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</ |
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}}== |
||
< |
<syntaxhighlight lang="bcpl">get "libhdr" |
||
manifest $( MAX = 1000 $) |
manifest $( MAX = 1000 $) |
||
Line 140: | Line 140: | ||
$) |
$) |
||
wrch('*N') |
wrch('*N') |
||
$)</ |
$)</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}}== |
||
< |
<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; |
||
}</ |
}</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}}== |
||
< |
<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</ |
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}}== |
||
< |
<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.</ |
IF DIVISIBLE, MOVE SPACE TO PRIME-FLAG.</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre>0001 |
<pre>0001 |
||
Line 274: | Line 274: | ||
=={{header|Cowgol}}== |
=={{header|Cowgol}}== |
||
< |
<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;</ |
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#)] |
||
< |
<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}}== |
||
< |
<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;</ |
od;</syntaxhighlight> |
||
{{out}}<pre>1 |
{{out}}<pre>1 |
||
4 |
4 |
||
Line 363: | Line 363: | ||
=={{header|FreeBASIC}}== |
=={{header|FreeBASIC}}== |
||
< |
<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</ |
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}} |
||
< |
<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) |
||
}</ |
}</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 422: | Line 422: | ||
=={{header|GW-BASIC}}== |
=={{header|GW-BASIC}}== |
||
< |
<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</ |
200 RETURN</syntaxhighlight> |
||
{{out}}<pre>1 |
{{out}}<pre>1 |
||
4 |
4 |
||
Line 455: | Line 455: | ||
=={{header|J}}== |
=={{header|J}}== |
||
< |
<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. |
||
< |
<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</ |
1000 | squares_for_which_successor_is_prime</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
Line 488: | Line 488: | ||
=={{header|Julia}}== |
=={{header|Julia}}== |
||
< |
<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)) |
||
</ |
</syntaxhighlight>{{out}}<pre> 1 4 16 36 100 196 256 400 576 676 </pre> |
||
=={{header|MAD}}== |
=={{header|MAD}}== |
||
< |
<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</ |
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}}== |
||
< |
<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}}== |
||
< |
<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.</ |
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. |
||
< |
<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=== |
||
< |
<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";</ |
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. |
||
< |
<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;</ |
(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}}== |
||
<!--< |
<!--<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> |
||
<!--</ |
<!--</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: |
||
<!--< |
<!--<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> |
||
<!--</ |
<!--</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): |
||
<!--< |
<!--<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> |
||
<!--</ |
<!--</syntaxhighlight>--> |
||
=={{header|Python}}== |
=={{header|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 |
<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 |
<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}}== |
||
< |
<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}}== |
||
< |
<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}}== |
||
< |
<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</ |
RETURN</syntaxhighlight> |
||
{{out}}<pre>1 |
{{out}}<pre>1 |
||
4 |
4 |
||
Line 822: | Line 822: | ||
=={{header|Wren}}== |
=={{header|Wren}}== |
||
{{libheader|Wren-math}} |
{{libheader|Wren-math}} |
||
< |
<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)</ |
System.print(squares)</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 842: | Line 842: | ||
=={{header|XPL0}}== |
=={{header|XPL0}}== |
||
< |
<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, ^ )]; |
||
]</ |
]</syntaxhighlight> |
||
{{out}} |
{{out}} |