题解 | #筛选法求素数#

筛选法求素数

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

#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
    int n;
    while(cin >> n){
        int delNum = 0;
        int num[n - 1];
        //导入数组
        for(int i = 0;i < n - 1;i++){
            num[i] = i + 2;
        }
        //第一次循环:确定每次循环的除数
        for(int i = 2;i <= n;i++){
            //第二次循环:遍历数组,从第i个数开始,后边的数对i取余
            for(int j = i - 2;j <= n - 1;j++){
                if(num[j + 1]%(i) == 0){
                num[j + 1] = 0;
                }
            }
        }
        //遍历数组输出
        for(int i = 0;i < n - 1;i++){
            //跳过数为0的
            if(num[i] == 0){
                delNum++;
            }else{
            //输出不为0的
                cout << num[i] << " ";}
        }
        cout << endl << delNum << endl;
    }
}
全部评论

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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