22、题目:数字涂色
【数字图色】疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作。黑板上已经写了N个正整数,同学们需要给这每个数分别上一种颜色。为了让黑板报既美观又有学习意义,老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。现在请你帮帮小朋友们,算算至少需要多少种颜色才能给这N个数进行上色。
输入描述:
第一行有一个正整数N,其中1<=N<=100。
第二行有个N个int型整数(保证输入数据在[1,100]范围内),表示黑板上各个正整数的值。
输出描述:
输出只有一个整数,为最少需要的颜色种数。
示例1:
输入
3
2 4 6
输出
1
def paint_nums(s):
"""
每次遍历所有元素,并移除所有能被第一个元素整除的元素
:param s:
:return:
"""
arr = [int(x) for x in s.split(" ")]
arr.sort()
l = len(arr)
i = 0
start = arr[0]
color = 1
while arr:
if i > l - 1:
i = 0
color += 1 # 每轮遍历完,颜色加一
start = arr[i]
elif arr[i] % start == 0:
arr.pop(i)
l -= 1
else:
i += 1
return color
print(paint_nums("2 5 4 7 6"))