将一个正整数分解质因数并输出。例如,输出60 = 2 * 2 * 3 * 5 * 1

非叫我将一个正整数分解质因数并输出,想的我头又秃了一层(开玩笑的哈哈哈

  • 对于这个问题,首先先搭好框架:也就是input语句输入和判断输入的正确性。
  • 然后考虑正整数分解后能有哪些数可以作为因子,我从1-9比较了之后发现只有2,3,5,7这四个数可以作为质因子分解正整数(其他的为什么不行呢,这里打个比方你就明白了:4是2的倍数,4=22,还能被2分解;再比如,9=33还能被3分解,以此类推)。
  • 然后就设计算法将你输入的数与2,3,5,7分别取模比较是否能除尽了,如果能除尽,就说明这个数是你输入的数的一个乘数,也就是这个数能分解输入的数~
  • 满足之后你还要考虑输出结果。我们要实现的结果是这样子的:
    60 = 2 * 2 * 3 * 5 * 1
  • 所以就要尝试如何能达到目标效果。
  • 达到效果后我们还要考虑本身是一个质数的可能,然后输出该质数等于1与它本身的乘积。

以上就是我思考这个问题的过程。思考的过程让我对算法,对编程有了更一步的认识。以后遇到问题的时候就要按照目标是什么-怎么办逐一攻破。

下面上代码:

num = int(input("请输入一个正整数:"))
num1 = str(num)
flag = 1
print(num1, "=", end=" ")
while flag:
    if num > 0:
        m = [2, 3, 5, 7]
        for n in m:
            if num % n == 0:
                print(n, "*", end=" ")
                num = num / n
                flag = 1
                break

            if num % n != 0 and n == 7:
                print(int(num), end=" ")
                flag = 0
                break
    else:
        print("请输入一个正整数!")

输出结果:
image

posted @ 2021-09-17 21:11  Cara_Smith  阅读(906)  评论(0编辑  收藏  举报