问题描述
求出区间[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
思路简单,先求出所有的素数放进表格里面,然后a,b内挨个遍历就可
start, end = map(int, input().split())
su_list =[] # 用于存放所有的质数
for i in range(2, 9997):
flag = 0
for value in range(2,((i)//2) +1):
if i % value == 0:
flag = 1
break # 节省运算时间
if flag == 0: # 说明是质数
su_list.append(i)
for num in range(start, end+1):
print("%d="%num, end='') # 对齐题目格式
value = num
xiabiao = 0 # 查询质数列表内容
while value != 1: #终止条件
if value % su_list[xiabiao] != 0: # 不是整除的质因数,跳过它,下标加一
xiabiao +=1
else:
value = value / su_list[xiabiao]
if value ==1: #对齐题目的输出格式
print(su_list[xiabiao],end='')
else:
print("%d*"%su_list[xiabiao], end='')
print() # 换行