原创文章,转载请注明出处。
最近在实现一篇论文的程序,其中涉及到对多个处理器的分组和分配。根据我的程序和实验测试结果,当将处理器数进行因式分解,得到的两个最接近的因子,按照二者中最大的数作为一个处理器分组的数,可以得到最大的处理器利用率。因此,问题就可以抽象出来:对于一个整数 n,如何快速对其进行因式分解,并得到它的两个最接近的因子。这也是本文要实现的主要内容。
1、首先我们可以举些例子,并从中观察它们有什么共同的规律。以下分别列出数字 16 ~ 64(每次递增 4)的因式分解后的两个最接近因子(设为 A 和 B):
16 = 4 × 4 20 = 4 × 5 24 = 4 × 6 28 = 4 × 7 32 = 4 × 8 36 = 6 × 6 40 = 5 × 8
44 = 4 × 11 48 = 6 × 8 52 = 4 × 13 56 =7 × 8 60 = 6 × 10