素数筛法

来源:互联网 发布:csrf攻击php 编辑:程序博客网 时间:2024/06/03 19:48
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#include <map>#include <string>#include<iostream>#include<vector>#include<algorithm>const int MAXSIZE = 1000;int is_prime[MAXSIZE];int prime[MAXSIZE];//判断是否是一个素数  Mark 标记数组 index 素数个数int Prime(){int index = 0;memset(is_prime,0,sizeof(is_prime));    for(int i = 2; i < MAXSIZE; i++)    {//如果未标记则得到一个素数if(is_prime[i] == 0){prime[index++] = i;}//标记目前得到的素数的i倍为非素数for(int j = 0; j < index && prime[j] * i < MAXSIZE; j++)        {is_prime[i * prime[j]] = 1;if(i % prime[j] == 0){                break;}        }    }return index;}int main(){int n = Prime();for(int i = 0; i < n; i++) {printf("%d ", prime[i]);if(i % 5 == 0) {printf("\n");}}return 0;}

原创粉丝点击