求素数
root@ubuntu:~/algorithm# cat testarray.c
#include <stdio.h>
#define N 10000
int main(){
int i,j ,a[N];
for(i=2;i<N;i++) a[i]=1;
for(i=2;i<N;i++)
if(a[i])
for(j=i;i*j<N;j++) a[i*j]=0;
for(i=2;i<N;i++)
if(a[i]) printf("%4d ",i);
printf("\n");
}
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[] ){
long int i,j ,N=atol(argv[1]);
int *a=malloc(N*sizeof(int));
for(i=2;i<N;i++) a[i]=1;
for(i=2;i<N;i++)
if(a[i])
for(j=i;i*j<N;j++) a[i*j]=0;
for(i=2;i<N;i++)
if(a[i]) printf("%4d ",i);
printf("\n");
}
本文介绍了一种通过C语言实现的高效素数筛选算法。该算法利用数组存储从2到N之间的所有整数,并通过迭代的方式标记合数,最终输出所有素数。文章提供了两种实现方式,一种使用固定大小的数组,另一种则使用动态分配内存。
1316

被折叠的 条评论
为什么被折叠?



