题意:对2~n+1染色,一个数不能与其素因子同色。
故而只需两种颜色即可,素数染1,合数染2便可满足条件
#include<bits/stdc++.h> using namespace std; typedef long long LL; //素数筛打表 ; ],num_prime=; ]; void init() { isNotPrime[]=isNotPrime[]=; ; i<=N; i++) { if(!isNotPrime[i]) prime[num_prime++]=i; ; j<num_prime&&i*prime[j]<=N; j++) { isNotPrime[i*prime[j]]=; if(!(i%prime[j])) break; } } } int main() { int n; init(); while(cin>>n) { ||n==) puts("); "); ;i<=n+;i++) printf(,i==n+? '\n':' '); } }