蓝桥杯每日一练:分解质因数
【摘要】
题目
问题描述 求出区间[a,b]中所有整数的质因数分解。 输入格式 输入两个整数a,b。 输出格式 每行输出一个数的分解,形如k=a1* a2* a3…(a1<=a2<=a3…...
题目
问题描述
求出区间[a,b]中所有整数的质因数分解。
输入格式
输入两个整数a,b。
输出格式
每行输出一个数的分解,形如k=a1* a2* a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看样例)
样例输入
3 10
样例输出
3=3
4=2* 2
5=5
6=2* 3
7=7
8=2* 2* 2
9=3* 3
10=2* 5
提示
先筛出所有素数,然后再分解。
数据规模和约定
2<=a<=b<=10000
pythond代码
分解质因数只针对合数。(分解质因数也称分解素因数)求一个数分解质因数,要从最小的质数除起,一直除到结果为质数为止。
参考百度百科:分解之因素
代码:
def solve(res, n, result):
for i in range(2, n+1):
if n % i ==0:
res += str(i)
n = n // i
if n == 1:
return res
elif n in result.keys():
res += '*'
res += result[n]
return res
else:
res += '*'
return solve(res, n, result)
else:
continue
if __name__ == '__main__':
a, b = map(int, input().split()) # 输入两个整数
result = {} # result存放值与其分解质因数的对应关系
# {3: '3', 4: '2*2', 5: '5', 6: '2*3', 7: '7', 8: '2*2*2', 9: '3*3', 10: '2*5'}
for i in range(a, b+1):
res = '' # 存放各个因数
result[i] = solve(res, i, result)
# 输出
for k, v in result.items():
s = str(k)+ '='+ str(v)
print(s)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
三、视频讲解
文章来源: chuanchuan.blog.csdn.net,作者:川川菜鸟,版权归原作者所有,如需转载,请联系作者。
原文链接:chuanchuan.blog.csdn.net/article/details/122639109
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)