| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 501 人关注过本帖
标题:把一个正整数进行因质分解
只看楼主 加入收藏
zxq0103
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2023-3-10
结帖率:0
收藏
已结贴  问题点数:10 回复次数:4 
把一个正整数进行因质分解
程序代码:
def fen_jie(num): #  递归法
    for i in range(2,num+1):
        if i == num:
            print(i,end="")
            return
        elif num % i == 0:
            print(i,"* ",end="")
            fen_jie(num // i)
            return

def fen_jie2(num):
    while num != 1: # 循环判断法
        for i in range(2,num + 1):
            if num % i == 0:
                print(i,end="")
                num //= i
                if num != 1:
                    print(" * ",end="")
                break

if __name__ == "__main__":
    int_a= 90
    print(int_a," = ",end="")
    fen_jie(int_a)
    print()
    print(int_a," = ",end="")
    fen_jie2(int_a)

输出结果:
90  = 2 * 3 * 3 * 5
90  = 2 * 3 * 3 * 5
搜索更多相关主题的帖子: if end print num 分解 
2023-04-01 13:22
东海ECS
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:Python
等 级:版主
威 望:32
帖 子:412
专家分:1646
注 册:2023-1-24
收藏
得分:5 
您有什么问题吗?

会当凌绝顶,一览众山小.
2023-04-01 14:53
ysr2857
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:34
帖 子:809
专家分:77
注 册:2020-2-10
收藏
得分:5 
回复 楼主 zxq0103
def fen_jie(num): #  递归法
    for i in range(2,num+1):
        if i == num:
            print(i,end="")
            return
        elif num % i == 0:
            print(i,"* ",end="")
            fen_jie(num // i)
            return

def fen_jie2(num):
    while num != 1: # 循环判断法
        for i in range(2,num + 1):
            if num % i == 0:
                print(i,end="")
                num //= i
                if num != 1:
                    print(" * ",end="")
                break

if __name__ == "__main__":
    int_a= 142857
    print(int_a," = ",end="")
    fen_jie(int_a)
    print()
    print(int_a," = ",end="")
    fen_jie2(int_a)

这个程序可以运行,但要分解的数需要再程序中改顶,上面的结果如下:
...
142857  = 3 * 3 * 3 * 11 * 13 * 37
142857  = 3 * 3 * 3 * 11 * 13 * 37>>>
2023-04-01 16:47
东海ECS
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:Python
等 级:版主
威 望:32
帖 子:412
专家分:1646
注 册:2023-1-24
收藏
得分:0 
可以改为接收输入:
程序代码:
def fen_jie(num): #  递归法
    for i in range(2,num+1):
        if i == num:
            print(i,end="")
            return
        elif num % i == 0:
            print(i,"* ",end="")
            fen_jie(num // i)
            return

def fen_jie2(num):
    while num != 1: # 循环判断法
        for i in range(2,num + 1):
            if num % i == 0:
                print(i,end="")
                num //= i
                if num != 1:
                    print(" * ",end="")
                break

if __name__ == "__main__":
    while True:
        try:
            int_a= 90
        except:
            print('error')
            break
        print(int_a," = ",end="")
        fen_jie(int_a)
        print()
        print(int_a," = ",end="")
        fen_jie2(int_a)
        

会当凌绝顶,一览众山小.
2023-04-01 19:01
zxq0103
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2023-3-10
收藏
得分:0 
回复 2楼 东海ECS
没什么问题,就是我新手,自己写的代码,让大神们给看一下,有没有需要改的地方
谢谢上面几位的指点

[此贴子已经被作者于2023-4-1 22:57编辑过]

2023-04-01 22:54
快速回复:把一个正整数进行因质分解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016568 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved