#include <stdio.h>
#define N 1000
void init(int [], int);
void print_arr(int [], int n);
void erato_traverse(int [], int ,int);
int main(){
int a[N], i;
init(a, N);
for(i = 2; i < N; i++){
erato_traverse(a, N, i);
}
print_arr(a, N);
}
void init(int a[], int n){
int i;
for( i = 0; i < n; i++){
a[i] = 1;
}
}
void erato_traverse(int a[], int n, int t){
int i;
if( a[t] ){
for(i = t + 1; i < n; i++){
if(!(i % t)){
a[i] = 0;
}
}
}
}
void print_arr( int a[], int n){
int i;
for( i = 1; i < n; i++){
if( a[i] ){
printf("%d ",i);
}
}
}
[C How To Program] 习题6.30 erato_traverse
最新推荐文章于 2023-02-05 23:32:31 发布