CF776B Sherlock and his girlfriend
CF776B Sherlock and his girlfriend
一个数和它的质因数不能同色。
素数的约数只有本身和1。
显然所有素数都可以染同色,合数同理。
欧拉筛一筛。
注意特判n<3的情况。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #define re register 5 using namespace std; 6 #define N 100002 7 int n,v[N],pri[N],cct;bool is[N]; 8 int main(){ 9 for(int i=2;i<N;++i){ 10 if(!v[i]) is[v[i]=pri[++cct]=i]=1; 11 for(int j=1;j<=cct;++j){ 12 if(pri[j]>i||pri[j]*i>=N) break; 13 v[pri[j]*i]=pri[j]; 14 } 15 }scanf("%d",&n); 16 if(n<3){ 17 puts("1"); 18 for(int i=1;i<=n;++i) printf("1 "); 19 }else{ 20 puts("2"); 21 for(re int i=2;i<=n+1;++i) printf("%d ",(!is[i])+1); 22 } 23 return 0; 24 }