您的位置:首页 > 其它

线性筛法求素数【Template】

2017-10-22 16:08 148 查看
#include<iostream>
#include<cstring>
#include<iomanip>
using namespace std;
const int maxn = 1e3;
int vis[maxn];
int prime[maxn];
int len;
void getprim()
{
memset(vis, 0, sizeof(vis));
memset(prime, 0, sizeof(vis));
len = 0;
for (int i = 2; i < maxn; i++)
{
if (vis[i])
continue;
prime[len++] = i;
for (int j = 2 * i; j < maxn; j += i)
{
vis[j] = 1;
}

}
}
int main()
{
getprim();
for (int i = 0; i < len; i++)
{
cout << setw(5) << prime[i];
if (i % 8 == 7)
cout << "\n";
}
return 0;
}




#include<iostream>
#include<cstring>
#include<iomanip>
using namespace std;
const int maxn = 1e3;
int vis[maxn];
int prime[maxn];
int len;
void getprim()
{
memset(vis, 0, sizeof(vis));
memset(prime, 0, sizeof(vis));
len = 0;
for (int i = 2; i < maxn; i++)
{
if (!vis[i])
prime[len++] = i;
for (int j = 0; j < len; j++)
{
if (i*prime[j] > maxn)
break;
vis[i*prime[j]] = 1;
if (i%prime[j] == 0)
break;
}
}
}
int main()
{
getprim();
for (int i = 0; i < len; i++)
{
cout << setw(5) << prime[i];
if (i % 8 == 7)
cout << "\n";
}
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: