如何将一个整数分成两个整数,当它们相乘时,它们给出第一个数字

时间:2017-02-20 18:37:18

标签: python python-2.7 python-3.x

所以我到处寻找,仍然无法弄明白。

基本上我想要做的是将数字x拆分成两个整数,当乘以时,它们会得到结果x

例如:
Input: 10
Output: 5, 2

有没有办法在python中执行此操作?提前谢谢。

2 个答案:

答案 0 :(得分:2)

通过这种方式,您可以找到所有可能的组合,包括(1,x):

import math  # Needed to generate the best range, so you have no repeated combinations.
possible_combinations = [(i, x / i) for i in range(1, int(math.ceil(x**0.5)) + 1) if x % i == 0]
for item in possible_combinations:
    print item

答案 1 :(得分:1)

每个整数本身可以被1整除。如果整数是复合的,它将至少有另外一对除数(可能是相同的,就像4的情况一样,可以被1,4整除)和2,2)。

lim = int(math.sqrt(num))
for i in range (1, lim):
    if num%i==0:
        print(i, int(num/i))