题解 | #筛选法求素数#

筛选法求素数

http://www.nowcoder.com/practice/06c3dcc303654ef4926654023eca1e5a

#include<stdio.h>
int main(void)
{
    int n;
    while((scanf("%d",&n))!=EOF)
    {
        int *a=(int *)malloc(sizeof(int)*(n-1));//动态分配一个数组
        int count=0;
        for(int i=0;i<n-1;i++)//为数组赋值
            a[i]=i+2;
        for(int i=0;i<n-1;i++)//注意前面a[0]和a[1]分别为2和3
        {
            if((1!=a[i]/2&&0==a[i]%2)||(1!=a[i]/3&&0==a[i]%3)||(1!=a[i]/5&&0==a[i]%5)||(1!=a[i]/7&&0==a[i]%7))
            {
                a[i]=0;
                count++;
            }
        }
        for(int i=0;i<n-1;i++)
        {
            if(a[i]!=0)
                printf("%d ",a[i]);
        }
        printf("\n%d",count);
    }
    return 0;
}
全部评论

相关推荐

joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务