# El significado de los problemas
n número de joyería, el valor de la i-ésima joyería es i + 1, es decir, el valor de la joyería es 2,3,4, ......, n + 1,
Estas joyas para manchado, haciendo que el precio de las joyas de la joyería es otro factor primordial cuando dos joyas de un color diferente
número mínimo de colores es necesario, y el número de las manchas de color de salida de protocolo
n∈ [1,1e5]
# Explicaciones
grafo bipartito, a un lado todos los números primos, el número de participación en el otro lado, por lo que un máximo de sólo dos colores
Cuando el grafo bipartito no sólo es necesaria cuando el borde de un color, hay una necesidad de dos tipos de borde
Es decir, cuando hay un número compuesto que bordeaba, sin número compuesto de veces que el infinito
Es decir, cuando n> = 3, cuando tiene que haber un número compuesto.
1 #include <bits / STDC ++ h.> 2 usando espacio de nombres std; 3 const int N = 1e5 + 10 ; 4 int p [N], cnt; 5 bool st [N]; 6 void get_primes ( int n) { 7 para ( int i = 2 ; i <= n; i ++ ) { 8 si (st [i]!) P [cnt ++] = i; 9 para ( int j = 0 ; p [j] <= n / i; j ++ ) { 10 st [p [j] * i] = verdadero ; 11 si (i% p [j] == 0 ) descanso ; 12 } 13 } 14 } 15 int main () { 16 int n; 17 cin >> n; 18 get_primes (n + 1 ); 19 si (n> 2 ) puts ( " 2 " ); 20 else puts ( " 1 " ); 21 22 para ( int i = 2 ; i <= n + 1 ; i ++) { 23 si (st [i]) 24 cout << ' 2 ' << ' ' ; 25 otro tribunal << ' 1 ' << ' ' ; 26 } 27 }