标签:int include 约数 define long 合数 题目
题目地址
题解
这题很有意思啊qwq。本来是写算出每个数的质约数的,然后写到一半发现,质约数互相不影响,有质约数的数肯定是合数。
所以合数染一种色,质数染一种色就好
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
using namespace std;
#define N 100010
#define ll long long
#define inf 2147483647
int p[N], n, a[N], vis[N];
int ans[N];
int main() {
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
#endif
scanf("%d", &n);
int cnt = 0; ++n;
for(int i = 2; i <= n; ++i) {
if(!vis[i]) p[++cnt] = i;
for(int j = 1; j <= cnt && i * p[j] <= n; ++j) {
vis[i * p[j]] = 1;
if(i % p[j] == 0) break;
}
}
int mx = 1;
for(int i = 2; i <= n; ++i) {
if(!vis[i]) ans[i - 1] = 1;
else ans[i - 1] = 2, mx = 2;
}
printf("%d\n", mx);
for(int i = 1; i < n; ++i) printf("%d ", ans[i]);
return 0;
}
标签:int,include,约数,define,long,合数,题目 来源: https://www.cnblogs.com/henry-1202/p/10260288.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。