题解 | #筛选法求素数#

筛选法求素数

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

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        int m[n], count = 0, val = 0;
        for (int x = 2; x <= n; x++) {  //判断2-n之间的素数
            for (int y = 1; y <= x; y++)
                if (x % y == 0) count++;
            if (count == 2) m[val++] = x;  //将素数值放入数组中
            count = 0;
        }
        for (int z = 0; z < val; z++)  //依次输出数组中的素数
            printf("%d ", m[z]);
        //清0个数为 n - 素数个数 - 1,1为val值在最后一次赋值后还会自加1,所以这里要减1
        printf("\n%d\n", n - val - 1);
    }
    return 0;
}
全部评论
虽然不是筛选法,但利用素数定义也挺厉害的
点赞 回复 分享
发布于 01-17 23:04 吉林

相关推荐

11-27 17:35
已编辑
蚌埠坦克学院 C++
深信服 后台开发 n×12
点赞 评论 收藏
分享
10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
5
收藏
分享
牛客网
牛客企业服务