a * b的除数是否有任何公式?

时间:2015-03-20 17:03:09

标签: math integer-arithmetic

让a和b为两个数字,

(a)= n1;

的除数

(b)= n2;

的除数

如何使用n1和n2找到(a * b)的除数?

   a=15; b=20
   n1=4; //no of divisors of a 
   n2=6; //no of divisors of b
   ans=(a*b); //300
   num_ans=18; // no of divisors of a*b

有没有找到它的公式?

2 个答案:

答案 0 :(得分:2)

如果你知道的是每个数字的除数,你就无法确定两个数的乘积的除数。

例:
2和4分别具有两个和三个除数。他们的产品8有四个除数 图5和9分别具有两个和三个除数。他们的产品45,有六个除数。

这两个数字对都有相同数量的单个除数,但它们的产品有不同的除数。

答案 1 :(得分:1)

不,但您可以推断出有关答案的一些信息。

ans的除数数量的界限是[max(n1,n2),n1 * n2](对于20和21而言是[6,24])。

通过从20和21的除数生成420的除数,很容易看出它是如何产生的(至少对于较小的数字)。

20的除数是列标题,21的除数是行标题。单元格包含该行和列的col_header * row_header结果。

        1    2    4     5    10    20
     +----+----+----+-----+-----+-----|
   1 |  1 |  2 |  4 |   5 |  10 |  20 |
   3 |  3 |  6 | 12 |  15 |  30 |  60 |
   7 |  7 | 14 | 28 |  35 |  70 | 140 |
  21 | 21 | 42 | 84 | 105 | 210 | 420 |

不幸的是,20和21是特殊情况,因为它们是相对素数。其他组合导致单元格中的重复值。

例如,15和20的表格如下所示:

        1    3     5    15 
     +----+----+-----+-----|
   1 |  1 |  3 |   5 |  15 |
   2 |  2 |  6 |  10 |  30 |
   4 |  4 | 12 |  20 |  60 |
   5 |  5 | 15 |  25 |  75 |
  10 | 10 | 30 |  50 | 150 |
  20 | 20 | 60 | 100 | 300 |

数字5,10,15,20,30和60出现多次,因此我们不能简单地将表格中的单元格数作为除数的数量。表中唯一值的数量等于除数的数量(18),它们落在区间[6,24]内。

这可以给你一个球场估计得到答案的复杂性,其算法基本上产生所有的除数,丢弃重复。