本文共 1635 字,大约阅读时间需要 5 分钟。
#include#include #include int main(){ //筛法求100以内的素数 int a[100],i = 0,n = 100,edge,j; //初始化所有的数组元素 for(;i < 100;i ++) { a[i] = i; } //做筛法的准备:求出对应的开方数,新得遍历倍数 edge = (int)sqrt(n); for(i = 2;i <= edge;i ++) { for(j = 2;j < n / 2;j ++) { if(j * i < n) { a[j * i] = 0; } } } //输出所有的不为零的部分 for(i = 0;i < n;i ++) { if(a[i] != 0) { printf("%d \n",a[i]); } } return 0;}
#include#include #include #define N 100void PrintPrime(int a[], int n);void SiftPrime(int a[], int n);int main(){ int a[N+1]; SiftPrime(a,N); PrintPrime(a,N); return 0;}void SiftPrime(int a[], int n){ int i ,j ,edge; for(i = 2; i <= N; i ++) { a[i] = i; } edge = sqrt(N); for(i = 2;i <= edge;i ++) { for(j = i + 1;j <= N;j ++) { if(a[i] != 0 && a[j] != 0 && a[j] % a[i] == 0) { a[j] = 0; } } }}void PrintPrime(int a[],int n){ int i ; for(i = 2;i <= N;i ++) { if(a[i] != 0) { printf("%d \t",a[i]); } } printf("\n");}
转载地址:http://iggpb.baihongyu.com/