2 条题解
-
-1
#include<bits/stdc++.h> using namespace std; const int MAXN=1e5+5; int vis[MAXN],n,flag; long long read(){ long long ans=0,f=1; char ch=getchar(); while(!isdigit(ch)){ f*=(ch=='-')?-1:1; ch=getchar(); } while(isdigit(ch)){ ans=(ans<<3)+(ans<<1)+(ch^48); ch=getchar(); } return ans*f; } int main(){ n=read(); n++; for(int i=2;i<=n;++i) if(vis[i]==0){ for(int j=i+i;j<=n;j+=i){ flag++; vis[j]=1; } } cout<<((flag==0)?1:2); printf("\n"); for(int i=2;i<=n;++i) printf("%d ",vis[i]+1); return 0; }
信息
- ID
- 22
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 6
- 标签
- 递交数
- 448
- 已通过
- 125
- 上传者