筛选法求素数

思路:就是将素数的数组置为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]);
        }
    }
}
原文地址:https://www.cnblogs.com/zhaohuan1996/p/12952965.html