constructive algorithms number theory *1200

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
#include<cstring>
#define ll long long
#define lowbit(x) (x&(-x))
#define rep(a,b) for(int i=a;i<=b;i++)
#define rrep(a,b) for(int j=a;j<=b;j++)
#define pre(a,b) for(int i=a;i>=b;i--)
#define ppre(a,b) for(int j=a;j>=b;j--)
#define ac puts("Yes")
#define wa puts("No")
#define pb push_back
#define PII pair<int,int>
using namespace std;
const int mod1=998244353;
const int mod2=1e9+7;
const int N=2e5+10;
bool st[N]={1,1};
ll a[N],k;
void ol(){
	for(int i=2;i<=100010;i++){
		if(!st[i])a[++k]=i;
		for(int j=1;j<=k;j++){
			if(i*a[j]>100010)break;
			st[i*a[j]]=1;
			if(i%a[j]==0)break;
		}
	}
}
ll b[N],id[N];
int main(){
	ol();
	int n,k;
	cin>>n;
	if(n<3)k=1;
	else k=2;
	cout<<k<<endl;
	cout<<1<<" ";
	rep(3,n+1)
	if(!st[i])cout<<1<<" ";
	else cout<<2<<" "; 
	return 0;
}


Comments

Submit
0 Comments
More Questions

1542A - Odd Set
1567B - MEXor Mixup
669A - Little Artem and Presents
691B - s-palindrome
851A - Arpa and a research in Mexican wave
811A - Vladik and Courtesy
1006B - Polycarp's Practice
1422A - Fence
21D - Traveling Graph
1559B - Mocha and Red and Blue
1579C - Ticks
268B - Buttons
898A - Rounding
1372B - Omkar and Last Class of Math
1025D - Recovering BST
439A - Devu the Singer and Churu the Joker
1323A - Even Subset Sum Problem
1095A - Repeating Cipher
630F - Selection of Personnel
630K - Indivisibility
20B - Equation
600B - Queries about less or equal elements
1015A - Points in Segments
1593B - Make it Divisible by 25
680C - Bear and Prime 100
1300A - Non-zero
1475E - Advertising Agency
1345B - Card Constructions
1077B - Disturbed People
653A - Bear and Three Balls