欧拉筛MLE求助
  • 板块P3912 素数个数
  • 楼主Blued
  • 当前回复12
  • 已保存回复12
  • 发布时间2022/10/12 19:45
  • 上次更新2023/10/27 07:46:16
查看原帖
欧拉筛MLE求助
649751
Blued楼主2022/10/12 19:45
#include<bits/stdc++.h>
#define int long long
using namespace std;

const int N = 1e8 + 5;

int n;

bool a[N];

vector < int > prime;

int ans;

void isprime()
{
	for(int i = 2;i <= n;i ++)
	{
		if(! a[i])
		prime . push_back(i) , ans ++;
		for(int j = 0;j < prime . size() && i * prime[j] <= n;j ++)
		{
			a[i * prime[j]] = true;
			if(i % prime[j] == 0)
			break;
		}
	} 
}

main()
{
	cin >> n;
	isprime();
	cout << ans << '\n';
}
2022/10/12 19:45
加载中...