Arbitrary-precision integers (included): Difference between revisions

Content added Content deleted
(→‎{{header|Raku}}: use regex)
Tag: Made through Tor
Line 2,487: Line 2,487:
=={{header|Zig}}==
=={{header|Zig}}==
<syntaxhighlight lang="zig">const std = @import("std");
<syntaxhighlight lang="zig">const std = @import("std");
const std = @import("std");
const bigint = std.math.big.int.Managed;
const bigint = std.math.big.int.Managed;


pub fn main() !void {
pub fn main() !void {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
var a = try bigint.initSet(std.heap.c_allocator, 5);
try a.pow(&a, try std.math.powi(u32, 4, try std.math.powi(u32, 3, 2)));
const allocator = &gpa.allocator;
defer _ = gpa.deinit();

var a = try bigint.initSet(allocator, 5);
try a.pow(a.toConst(), try std.math.powi(u32, 4, try std.math.powi(u32, 3, 2)));
defer a.deinit();
defer a.deinit();


var as = try a.toString(allocator, 10, false);
var as = try a.toString(std.heap.c_allocator, 10, .lower);
defer allocator.free(as);
defer std.heap.c_allocator.free(as);


std.debug.print("{s}...{s}\n", .{ as[0..20], as[as.len - 20 ..] });
std.debug.print("{s}...{s}\n", .{ as[0..20], as[as.len - 20 ..] });