• 素数筛


     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<cstring>
     5 #include<algorithm>
     6 using namespace std;
     7 
     8 int prime[1000000];
     9 int vis[1000000];
    10 int normal_sieve(int n)
    11 {
    12     memset(vis,0,sizeof(vis));
    13     int cnt=0;
    14     int tmp=(int)sqrt(1.0*n);
    15     for(int i=2;i<=tmp;i++)
    16     {
    17         if(!vis[i])
    18         {
    19             prime[cnt++]=i;
    20             for(int j=i;j<=n;j+=i)
    21                 vis[j]=1;
    22         }
    23     }
    24     for(int i=tmp;i<=n;i++)
    25         if(!vis[i])
    26             prime[cnt++]=i;
    27     return cnt;
    28 }
    29 //欧拉素数筛;
    30 int Find_prime(int N)
    31 {
    32     int cnt=0;
    33     memset(vis,0,sizeof(vis));
    34     for(int i=2;i<=N;i++)
    35     {
    36         if(!vis[i])
    37             prime[cnt++]=i;
    38         for(int j=0;j<cnt;j++)
    39         {
    40             if(i*prime[j]>N)
    41                 break;
    42             vis[i*prime[j]]=1;
    43             if(i%prime[j]==0)
    44                 break;
    45         }
    46     }
    47     return cnt;
    48 }
    49 int main()
    50 {
    51     int n;
    52     while(scanf("%d",&n)!=EOF && n)
    53     {
    54         int cnt=Find_prime(n);
    55         for(int i=0;i<cnt;i++)
    56             printf("%d ",prime[i]);
    57         printf("
    ");
    58 
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    网络检查思路和步骤
    查看网络状态
    【Linux常见命令】lsof命令
    【Linux常见命令】ip命令
    【Linux常见命令】ifconfig命令:配置与查看网络信息
    【Linux常见命令】netstat命令
    Java-MD5
    Java发送邮件
    Maven基础02
    Maven基础01
  • 原文地址:https://www.cnblogs.com/by-1075324834/p/5006018.html
Copyright © 2020-2023  润新知