Perl - 最不常见的多个

时间:2015-09-30 07:00:34

标签: perl lcm

此代码应从N个数字执行LCM。

我试图将打印放在的任何地方,以便查看错误的位置。我想是在:

if($vec[0] == $vec[$n-1]){
    $resultado = $vec[0];
    last;
}

但我不能让它发挥作用。 请你帮助我好吗?

我是Perl的新手。 希望你能解决这个问题 我也尝试更改变量,但它不起作用。我的意思是

$u = 0 , $w = $n-1;

FULL CODE

1 个答案:

答案 0 :(得分:-1)

要获取LCM,您可以将任务拆分为多个子例程:

  • is_prime#如果值为prime,则返回true
  • roots#返回一个数字的根(构成一个值的所有素数。例如:12的根是:2,2,3)
  • LCM#获取值列表。在数字不是素数的情况下提取根。每当我们看到根
  • 时,存储在哈希中并逐渐增加

所以我们会像:

一样
%sub_total = (
  VALUE => TIMES_FOUND,
  2 => 2,
  3 => 1,
);

我们有另一个哈希是总数。如果sub_total哈希的键使用频率高于总哈希值,我们将其添加到总数中。

最后,我们遍历总哈希并使用算法找到产品:

for (%total){
   $prod *= $_ ** $total {$_};
}

注意

我将很快附上我为获得LCM而编写的代码。现在在这里不在我身边。