Jump to content

Cullen and Woodall numbers: Difference between revisions

m
syntax highlighting fixup automation
(J)
m (syntax highlighting fixup automation)
Line 44:
Uses Algol 68Gs LONG LONG INT for long integers. The number of digits must be specified and appears to affect the run time as larger sies are specified. This sample only shows the first two Cullen primes as the time taken to find the third is rather long.
{{libheader|ALGOL 68-primes}}
<langsyntaxhighlight lang="algol68">BEGIN # find Cullen and Woodall numbers and determine which are prime #
# a Cullen number n is n2^2 + 1, Woodall number is n2^n - 1 #
PR read "primes.incl.a68" PR # include prime utilities #
Line 93:
print( ( newline ) )
END
END</langsyntaxhighlight>
{{out}}
<pre>
Line 103:
=={{header|Arturo}}==
 
<langsyntaxhighlight lang="rebol">cullen: function [n]->
inc n * 2^n
 
Line 110:
 
print ["First 20 cullen numbers:" join.with:" " to [:string] map 1..20 => cullen]
print ["First 20 woodall numbers:" join.with:" " to [:string] map 1..20 => woodall]</langsyntaxhighlight>
 
{{out}}
Line 118:
 
=={{header|AWK}}==
<syntaxhighlight lang="awk">
<lang AWK>
# syntax: GAWK -f CULLEN_AND_WOODALL_NUMBERS.AWK
BEGIN {
Line 135:
exit(0)
}
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 145:
==={{header|BASIC256}}===
{{trans|FreeBASIC}}
<langsyntaxhighlight BASIC256lang="basic256">print "First 20 Cullen numbers:"
 
for n = 1 to 20
Line 159:
print int(num); " ";
next n
end</langsyntaxhighlight>
{{out}}
<pre>
Line 166:
 
==={{header|FreeBASIC}}===
<langsyntaxhighlight lang="freebasic">Dim As Uinteger n, num
Print "First 20 Cullen numbers:"
 
Line 180:
Print num; " ";
Next n
Sleep</langsyntaxhighlight>
{{out}}
<pre>First 20 Cullen numbers:
Line 189:
 
==={{header|PureBasic}}===
<langsyntaxhighlight PureBasiclang="purebasic">OpenConsole()
PrintN("First 20 Cullen numbers:")
 
Line 205:
 
PrintN(#CRLF$ + "--- terminado, pulsa RETURN---"): Input()
CloseConsole()</langsyntaxhighlight>
{{out}}
<pre>
Line 216:
{{works with|True BASIC}}
{{trans|FreeBASIC}}
<langsyntaxhighlight lang="qbasic">DIM num AS LONG ''comment this line for True BASIC
PRINT "First 20 Cullen numbers:"
 
Line 232:
PRINT num;
NEXT n
END</langsyntaxhighlight>
{{out}}
<pre>
Line 241:
{{works with|QBasic}}
{{trans|FreeBASIC}}
<langsyntaxhighlight lang="qbasic">REM DIM num AS LONG !uncomment this line for QBasic
PRINT "First 20 Cullen numbers:"
 
Line 257:
PRINT num;
NEXT n
END</langsyntaxhighlight>
{{out}}
<pre>
Line 264:
 
==={{header|Yabasic}}===
<langsyntaxhighlight lang="yabasic">print "First 20 Cullen numbers:"
 
for n = 1 to 20
Line 278:
next n
print
end</langsyntaxhighlight>
{{out}}
<pre>
Line 286:
 
=={{header|F_Sharp|F#}}==
<langsyntaxhighlight lang="fsharp">
// Cullen and Woodall numbers. Nigel Galloway: January 14th., 2022
let Cullen,Woodall=let fG n (g:int)=(bigint g)*2I**g+n in fG 1I, fG -1I
Line 293:
Seq.initInfinite((+)1)|>Seq.filter(fun n->let mutable n=Woodall n in Open.Numeric.Primes.MillerRabin.IsProbablePrime &n)|>Seq.take 12|>Seq.iter(printf "%A "); printfn ""
Seq.initInfinite((+)1)|>Seq.filter(fun n->let mutable n=Cullen n in Open.Numeric.Primes.MillerRabin.IsProbablePrime &n)|>Seq.take 5|>Seq.iter(printf "%A "); printfn ""
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 304:
=={{header|Factor}}==
{{works with|Factor|0.99 2022-04-03}}
<langsyntaxhighlight lang="factor">USING: arrays kernel math math.vectors prettyprint ranges
sequences ;
 
20 [1..b] [ dup 2^ * 1 + ] map dup 2 v-n 2array simple-table.</langsyntaxhighlight>
{{out}}
<pre>
Line 316:
=={{header|Go}}==
{{libheader|GMP(Go wrapper)}}
<langsyntaxhighlight lang="go">package main
 
import (
Line 367:
}
fmt.Println()
}</langsyntaxhighlight>
 
{{out}}
Line 385:
 
=={{header|Haskell}}==
<langsyntaxhighlight lang="haskell">findCullen :: Int -> Integer
findCullen n = toInteger ( n * 2 ^ n + 1 )
 
Line 399:
print cullens
putStrLn "First 20 Woodall numbers:"
print woodalls</langsyntaxhighlight>
{{out}}
<pre>First 20 Cullen numbers:
Line 409:
=={{header|J}}==
 
<langsyntaxhighlight Jlang="j">cullen=: {{ y* 1+2x^y }}
woodall=: {{ y*_1+2x^y }}</langsyntaxhighlight>
 
Task example:
 
<langsyntaxhighlight Jlang="j"> cullen 1+i.20
3 10 27 68 165 390 903 2056 4617 10250 22539 49164 106509 229390 491535 1048592 2228241 4718610 9961491 20971540
woodall 1+i.20
1 6 21 60 155 378 889 2040 4599 10230 22517 49140 106483 229362 491505 1048560 2228207 4718574 9961453 20971500</langsyntaxhighlight>
 
 
=={{header|Julia}}==
{{trans|Raku}}
<langsyntaxhighlight lang="julia">using Lazy
using Primes
 
Line 434:
println("\nFirst 5 Cullen primes: (in terms of n)\n", take(5, primecullens)) # A005849
println("\nFirst 12 Woodall primes: (in terms of n)\n", Int.(collect(take(12, primewoodalls)))) # A002234
</langsyntaxhighlight>{{out}}
<pre>
First 20 Cullen numbers: ( n × 2**n + 1)
Line 449:
 
=={{header|Lua}}==
<langsyntaxhighlight lang="lua">function T(t) return setmetatable(t, {__index=table}) end
table.range = function(t,n) local s=T{} for i=1,n do s[i]=i end return s end
table.map = function(t,f) local s=T{} for i=1,#t do s[i]=f(t[i]) end return s end
Line 459:
function woodall(n) return (n<<n)-1 end
print("First 20 Woodall numbers:")
print(T{}:range(20):map(woodall):concat(" "))</langsyntaxhighlight>
{{out}}
<pre>First 20 Cullen numbers:
Line 467:
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<langsyntaxhighlight Mathematicalang="mathematica">ClearAll[CullenNumber, WoodallNumber]
SetAttributes[{CullenNumber, WoodallNumber}, Listable]
CullenNumber[n_Integer] := n 2^n + 1
Line 495:
{i, 1, \[Infinity]}
];
wps</langsyntaxhighlight>
{{out}}
<pre>{3, 9, 25, 65, 161, 385, 897, 2049, 4609, 10241, 22529, 49153, 106497, 229377, 491521, 1048577, 2228225, 4718593, 9961473, 20971521}
Line 504:
=={{header|Perl}}==
{{libheader|ntheory}}
<langsyntaxhighlight lang="perl">use strict;
use warnings;
use bigint;
Line 531:
($m,$n) = (12,0);
print "\n\nFirst $m Woodall primes: (in terms of n)\n";
print do { $n < $m ? (!!is_prime(cullen $_,-1) and ++$n and "$_ ") : last } for 1 .. Inf;</langsyntaxhighlight>
{{out}}
<pre>First 20 Cullen numbers:
Line 546:
 
=={{header|Phix}}==
<!--<langsyntaxhighlight Phixlang="phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #004080;">atom</span> <span style="color: #000000;">t0</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">time</span><span style="color: #0000FF;">()</span>
Line 595:
<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;">"First 12 Woodall primes (in terms of n):%s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #000000;">w</span><span style="color: #0000FF;">)})</span>
<span style="color: #0000FF;">?</span><span style="color: #7060A8;">elapsed</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">time</span><span style="color: #0000FF;">()-</span><span style="color: #000000;">t0</span><span style="color: #0000FF;">)</span>
<!--</langsyntaxhighlight>-->
{{out}}
<pre>
Line 607:
 
=={{header|Python}}==
<langsyntaxhighlight lang="python">
print("working...")
print("First 20 Cullen numbers:")
Line 624:
print()
print("done...")
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 636:
===Bit Shift===
{{trans|Quackery}}
<langsyntaxhighlight Pythonlang="python">def cullen(n): return((n<<n)+1)
def woodall(n): return((n<<n)-1)
Line 648:
for i in range(1,20):
print(woodall(i),end=" ")
print()</langsyntaxhighlight>
 
{{out}}
Line 655:
=={{header|Quackery}}==
 
<langsyntaxhighlight Quackerylang="quackery"> [ dup << 1+ ] is cullen ( n --> n )
 
[ dup << 1 - ] is woodall ( n --> n )
Line 663:
cr
say "First 20 Woodall numbers:" cr
20 times [ i^ 1+ woodall echo sp ] cr</langsyntaxhighlight>
 
{{out}}
Line 676:
=={{header|Raku}}==
 
<syntaxhighlight lang="raku" perl6line>my @cullen = ^∞ .map: { $_ × 1 +< $_ + 1 };
my @woodall = ^∞ .map: { $_ × 1 +< $_ - 1 };
 
Line 682:
put "\nFirst 20 Woodall numbers: ( n × 2**n - 1)\n", @woodall[1..20]; # A003261
put "\nFirst 5 Cullen primes: (in terms of n)\n", @cullen.grep( &is-prime, :k )[^5]; # A005849
put "\nFirst 12 Woodall primes: (in terms of n)\n", @woodall.grep( &is-prime, :k )[^12]; # A002234</langsyntaxhighlight>
{{out}}
<pre>First 20 Cullen numbers: ( n × 2**n + 1)
Line 697:
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring">
load "stdlib.ring"
 
Line 716:
 
see nl + "done..." + nl
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 729:
 
=={{header|Rust}}==
<langsyntaxhighlight lang="rust">// [dependencies]
// rug = "1.15.0"
 
Line 773:
.collect();
println!("{}", woodall_primes.join(" "));
}</langsyntaxhighlight>
 
{{out}}
Line 791:
 
=={{header|Sidef}}==
<langsyntaxhighlight lang="ruby">func cullen(n) { n * (1 << n) + 1 }
func woodall(n) { n * (1 << n) - 1 }
 
Line 804:
 
say "\nFirst 12 Woodall primes: (in terms of n)"
say 12.by { woodall(_).is_prime }.join(' ')</langsyntaxhighlight>
{{out}}
<pre>
Line 821:
 
=={{header|Verilog}}==
<langsyntaxhighlight Veriloglang="verilog">module main;
integer n, num;
Line 840:
$finish ;
end
endmodule</langsyntaxhighlight>
 
 
Line 847:
{{libheader|Wren-big}}
Cullen primes limited to first 2 as very slow after that.
<langsyntaxhighlight lang="ecmascript">import "./big" for BigInt
 
var cullen = Fn.new { |n| (BigInt.one << n) * n + 1 }
Line 882:
n = n + 1
}
System.print()</langsyntaxhighlight>
 
{{out}}
Line 902:
{{libheader|Wren-gmp}}
Cullen primes still slow to emerge, just over 10 seconds overall.
<langsyntaxhighlight lang="ecmascript">/* cullen_and_woodall_numbers2.wren */
 
import "./gmp" for Mpz
Line 939:
n = n + 1
}
System.print()</langsyntaxhighlight>
 
{{out}}
10,333

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.