筛选法求素数
思路:就是将素数的数组置为0.
1、初始化a[n]-a[n]为1-n;
2、a[1]=0;
3、将a[1]-a[n]中为素数的置为0,即a[i]=0;
4、输出数组,将不为0的输出。
#include<stdio.h> #include<math.h> #include<malloc.h> #include<string.h> #include<stdlib.h> #include <time.h> int func(int num){ int i; for(i=2;i<=num/2;i++){ if(num%i==0) return 0; } return 1; } main() { int n,i; scanf("%d",&n); int a[n]; for(i=1;i<=n;i++){ a[i]=i; } a[1]=0; for(i=1;i<=n;i++){ if(func(a[i])==0){ a[i]=0; } } for(i=1;i<=n;i++){ if(a[i]!=0){ printf("%d ",a[i]); } } }