最后两个点求助
查看原帖
最后两个点求助
232507
OK咯莫名其妙楼主2021/7/18 16:35
#include<bits/stdc++.h>
using namespace std;
long long n,ans;
bool vis[100000058];
int prime[100000058];
int main(){
	cin>>n;
	memset(vis,0,sizeof(vis));
	memset(prime,0,sizeof(prime));
	//cout<<n<<endl;
	for(int i=2;i<=n;i++){
		if(!vis[i]){
			prime[++ans]=i;
		}
	for(int j=1; i*prime[j]<=n&&j<=ans;j++){
		vis[i*prime[j]]=1;
		if(!(i%prime[j]))break;
	}
	}
	/*for(int i=1;i<=n;i++)
		cout<<prime[i]<<" ";*/
	//cout<<endl;
	cout<<ans<<endl;
	return 0;
}
2021/7/18 16:35
加载中...