题目描述
无话可说的一题,狐假虎威
挖掘题目含义:合数标2,质数标1
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
const int N=100010;
int p[N],st[N],cnt;
int n,k;
int price[N];
int color[N];
int f()
{
int res=1;
for(int i=2;i<=n+1;i++)
{
if(!st[i])
{
p[++cnt]=i;
st[i]=1;
color[i]=1;
for(int j=i+i;j<=n+1;j=j+i)
{
color[j]=2;
st[j]=1;
res=2;
}
}
}
return res;
}
int main()
{
cin>>n;
int res=f();
cout<<res<<endl;
for(int i=2;i<=n+1;i++)
{
cout<<color[i]<<" ";
}
return 0;
}