Arbitrary-precision integers (included): Difference between revisions
Arbitrary-precision integers (included) (view source)
Revision as of 22:35, 12 April 2024
, 1 month ago→{{header|langur}}
(→{{header|Raku}}: use regex) Tag: Made through Tor |
Langurmonkey (talk | contribs) |
||
(19 intermediate revisions by 8 users not shown) | |||
Line 1,025:
=={{header|Fōrmulæ}}==
{{FormulaeEntry|page=https://formulae.org/?script=examples/Arbitrary-precision_integers_%28included%29}}
'''Solution'''
In the following script, the result is converted to a string, in order to calculate its size, and its first/last digits.
[[File:Fōrmulæ - Arbitrary-precision integers (included) 01.png]]
[[File:Fōrmulæ - Arbitrary-precision integers (included) 02.png]]
=={{header|GAP}}==
Line 1,196 ⟶ 1,200:
"62060698786608744707"
julia> bigstr[end-
"
=={{header|Klong}}==
Line 1,219 ⟶ 1,223:
<pre>
5^4^3^2 = 62060698786608744707...92256259918212890625 and has 183231 digits
</pre>
=={{header|Lambdatalk}}==
Just using Javascript's BigInt
<syntaxhighlight lang="Scheme">
{def N {BI.** 5 {BI.** 4 {BI.** 3 2}}}} -> N
length: {def L {W.length {N}}} -> L = 183231
20 first digits: {W.slice 0 20 {N}} -> 62060698786608744707
20 last digits: {W.slice -20 {L} {N}} -> 92256259918212890625
</syntaxhighlight>
=={{header|langur}}==
Arbitrary precision is native in langur.
<syntaxhighlight lang="langur">val .xs = string 5 ^ 4 ^ 3 ^ 2
val .len = len .xs
writeln .len, " digits"
if .len > 39 and s2s(.xs, 1..20) == "62060698786608744707" and
s2s(.xs, .len-19 .. .len) == "92256259918212890625" {
writeln "SUCCESS"
}
</syntaxhighlight>
{{out}}
<pre>183231 digits
SUCCESS
</pre>
Line 1,934 ⟶ 1,967:
{{works with|Rakudo|2022.07}}
<syntaxhighlight lang="raku" line>
given [**] 5, 4, 3, 2 {
ok ~([**] 5, 4, 3, 2) ~~ /^ '62060698786608744707' <digit>* '92256259918212890625' $/,▼
use Test;
'5**4**3**2 has expected first and last twenty digits';</syntaxhighlight>▼
printf 'This number has %d digits', .chars;
}</syntaxhighlight>
{{out}}
<pre>ok 1 - 5**4**3**2 has expected first and last twenty digits
This number has 183231 digits</pre>
=={{header|REXX}}==
Line 2,134 ⟶ 2,172:
=={{header|Sidef}}==
<syntaxhighlight lang="ruby">var x = 5**(4**(3**2))
var y = x.to_s
printf("5**4**3**2 =
{{out}}
<pre>
Line 2,466 ⟶ 2,504:
{{libheader|Wren-fmt}}
{{libheader|Wren-big}}
<syntaxhighlight lang="
import "./big" for BigInt
var p = BigInt.three.pow(BigInt.two)
Line 2,490 ⟶ 2,528:
pub fn main() !void {
var
▲ try a.pow(a.toConst(), try std.math.powi(u32, 4, try std.math.powi(u32, 3, 2)));
defer a.deinit();
var as = try a.toString(
defer
std.debug.print("{s}...{s}\n", .{ as[0..20], as[as.len - 20 ..] });
|