2 条题解

  • -1
    @ 2023-3-2 21:01:24
    #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
    上传者