线性筛法求素数【Template】

来源:互联网 发布:开淘宝店空挂商品 编辑:程序博客网 时间:2024/05/17 16:12
#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;}
原创粉丝点击