丑数地定义:
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但7、14不是,因为它们包含质因子7。 习惯上我们把1当做是第一个丑数。
编写思路:
我先写一个函数可以实现质因式分解,再写一个函数可以判断一个数是否是丑数,最后写操作部分的代码。
代码如下:
def yinshifenjie(a):
A = [ ]
while a != 1:
for i in range(2,a+1):
b,c = divmod(a,i)
if c == 0:
A.append(i)
break
a = b
return A
def chou(a):
if a == 1:
return 1
else:
A = yinshifenjie(a)
if A[-1] >5:
return 0
else:
return 1
a,b = map(int,input("输入范围:").split( ))
B = []
for i in range(a,b+1):
if chou(i) == 1:
B.append(i)
print(B)
其中判断一个数是不是丑数地函数里我偷了个懒,通过看一个属分解后的最大质因数是否大于5判断它是不是丑数。QAQ,主要还是不太会这种结构,和我前面写的判断一个数是不是质数的问题一样。TAT
学海无涯,求带佬指教。