从数字列表中打印素数,例如1到1000

#include stdio.h#include math.h#define SIZE 100int status[SIZE];void sieve(){int i, j, sq;

编程学习网为您整理以下代码实例,主要实现:从数字列表中打印素数,例如1到1000,希望可以帮到各位朋友。

#include <stdio.h>
#include <math.h>
#define SIZE 100

int status[SIZE];

voID sIEve()
{
     int i, j, sq;
     for(i = 0; i < SIZE; i++) {
         status[i] = 0;
     }

     sq = sqrt(SIZE);

     for(i=4;i<=SIZE;i+=2) {
        status[i] = 1;
     }

     for(i = 3; i <= sq; i += 2)
     {
         if(status[i] == 0){
              for(j = 2*i; j <= SIZE; j += i)
                 status[j] = 1;
         }
     }
     status[1] = 1;
}

int main(){
     int i, counter = 100;
     sIEve();
     printf("\nFollowing numbers are prime in the range: 1 to %d :\n", counter);
     for (i = 1; i < counter; i++){
       if(status[i]==0) {
          printf("%d\t", i);
       }
     }

     return 0;
}
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐