AcWing 1293. 夏洛克和他的女朋友
原题链接
简单
作者:
皓首不倦
,
2020-09-06 14:48:33
,
所有人可见
,
阅读 408
'''
只要序列里面有合数,一定需要两种颜色,不论数有多少,至多需要两种颜色
特殊情况,当序列只有质数时候,只需要一种颜色
'''
# 筛选出1-N中的质数
def get_prime(N):
prime_vals = []
flag = [True] * (N+1)
for val in range(2, N+1):
if flag[val]:
prime_vals.append(val)
for p_val in prime_vals:
if val * p_val > N:
break
flag[val * p_val] = False
if val % p_val == 0:
break
return prime_vals, flag
n = int(input())
print(2 if n+1 > 3 else 1)
_, flag = get_prime(n+1)
for i in range(2, n+2):
if flag[i]:
print(1, end=' ')
else:
print(2, end=' ')