gpt4 book ai didi

perl - 找出所有相乘得到 X 的整数?

转载 作者:行者123 更新时间:2023-12-05 00:42:45 25 4
gpt4 key购买 nike

如果我有一个数字,比如说 12,我如何计算所有相乘的整数会得到 12?

示例:如果 12,那么解决方案将是 1x12、2x6、3x4。

那怎么办?

最佳答案

Christian's Works for a brute force method,为了更优雅尝试实现一些integer factorization algorithm .

编辑:

在挖掘 CPAN(你总是应该)之后,我发现了 Math::Factor::XS ,这是一个示例(我也使用 grep/map 模拟了一个纯 Perl 示例):

#!/usr/bin/perl
use strict;
use warnings;
use 5.10.0;

use Math::Factor::XS qw/factors matches/;

my $num = 12;

say "Factors:";
my @factors = factors $num;
say for @factors;

say "Matches:";
say $_->[0] . "x" . $_->[1] for ( [ 1, $num ] , matches($num, \@factors));

# using grep
say "Grep:";
my @grep_factors = map { [ $_ , $num / $_ ] } grep { !($num % $_) } (1 .. int sqrt $num);
say $_->[0] . "x" . $_->[1] for @grep_factors;

关于perl - 找出所有相乘得到 X 的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6208928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com