1. 程式人生 > >CF776B Sherlock and his girlfriend

CF776B Sherlock and his girlfriend

pla .org int targe sed eve 技術 play aps

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 }
View Code

CF776B Sherlock and his girlfriend