zoukankan      html  css  js  c++  java
  • 素数筛子算法

    描述

    现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数。

    输入

    给出一个正整数数N(N<=2000000)
    但N为0时结束程序。
    测试数据不超过100组

    输出

    将2~N范围内所有的素数输出。两个数之间用空格隔开

    样例输入

    5
    10
    11
    0

    样例输出

    2 3 5
    2 3 5 7
    2 3 5 7 11

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <math.h>
     4 #define N 2000001
     5   
     6 int main(){
     7     int i;
     8     int j;
     9     char flag[N];
    10     memset(flag,'0',N);
    11     flag[0]='1';
    12     flag[1]='1';
    13   
    14     for(i=2;i<=sqrt(N);i++){
    15         if(flag[i]=='0'){
    16             for(j=i*i;j<N;j+=i){
    17                 flag[j]='1';
    18             }
    19         }
    20     }
    21   
    22     int number;
    23       
    24     while(1){
    25         scanf("%d",&number);
    26   
    27         if(number==0)
    28             break;
    29   
    30         for(i=2;i<=number;i++){
    31             if(flag[i]=='0')
    32                 printf("%d ",i);
    33         }
    34               
    35         printf("
    ");
    36     }
    37   
    38     return 0;
    39 }
  • 相关阅读:
    已知二叉树的前序遍历、中序遍历,求后序遍历
    排序算法
    应用层
    运输层
    mysql分页查询
    mysql 性能分析及explain用法
    数据库SQL优化
    MATLAB GUI设计(1)
    路径选择
    Python itchat库(1)
  • 原文地址:https://www.cnblogs.com/zqxLonely/p/4054550.html
Copyright © 2011-2022 走看看