题解 | #筛选法求素数#

筛选法求素数

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

#include <stdio.h>
int main() {
    int a = 0;
    while(~scanf("%d", &a))
    {
        int i = 0;
        int arr[100]={0};
        int count = 0;
        for(i=2; i<=a; i++)
        {
           arr[i-2]=i;//存储
        }
        for(i=0; i<=a-2; i++)
        {
            int j = 0;
            for(j=1; j<=a-2-i; j++)
            {
                 if(arr[i+j]%(i+2)==0 && arr[i+j]!=0)//控制数组中该元素之后的数能被该数整除,能够被整除的数清0后,不能影响到其他数的判断
               {
                  arr[i+j]=0;
                  count++;
               }
            }           
        }
        for(i=0; i<a-1; i++)
        {
            if(arr[i]!=0)//将没被清零的数输出来
            printf("%d ",arr[i]);
        }
        printf("\n%d\n",count);
    }
    return 0;
}

全部评论

相关推荐

爱睡觉的冰箱哥:学历不够啊兄弟,分析师都是9硕✌🏻咱搞不过他们滴
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务