筛选法求素数

来源:互联网 发布:C#二维数组定义 编辑:程序博客网 时间:2024/05/21 18:19

筛选法求素数

/**本例仅以10000以内所有素数作为范例*/#include <stdio.h>#include <math.h>#define N 10000void prime(int n);int isprime[N+1];int main(void){    int i;    prime(N);    for (i = 0;i <= N;i++)        if (isprime[i] == 1)          printf("%5d",i);    return 0;}void prime(int n){    int i,j,m;    for (i = 0;i <= n;i++)        isprime[i] = 1;    isprime[0] = isprime[1] = 0;    m = (int)sqrt(n);    for (i = 2;i <= m;i++)        if (isprime[i])          for (j = 2*i;j <= n;j += i) //只要是i的倍数均不可能为素数          isprime[j] = 0;}

本例使用的编程语言为C语言
1 0