其他分享
首页 > 其他分享> > 洛谷P5736 【深基7.例2】质数筛

洛谷P5736 【深基7.例2】质数筛

作者:互联网

第一题参考代码

#include<bits/stdc++.h>
using namespace std;
/*
基础知识点:
1.函数的基本结构:
函数类型 函数名(参数列表){
函数主体,函数在return语句终止,void类型的函数可以不return,也可以写"return ;"这么一句话
}

2.函数的调用:
函数名(参数)进行使用,参数和参数列表对应

代码编写小技巧:
可以使用一个空数组和一个累加的变量来存储新产生的数据。
例如:
声明: int new_num[10000], num_cnt;
存贮新产生的数: new_num[++num_cnt] = 新产生的数;
遍历所有新产生的数:
 for(int i = 1; i <= num_cnt; ++i){
    printf("%d\n",new_num[i]);
 }
 */
//在这里定义一个能判断一个数是不是质数的函数judge(x)
//能被2到sqrt(x)就返回一个1(true),否则就返回0(false)
bool judge(long long num){
    for(long long i = 2; i * i <= num; ++i){
        if(num % i == 0) return false;
    }
    return true;
}
int num1[100 + 7], num2[100 + 7], cnt = 0;
int main()
{
    int n; scanf("%d",&n);
    for(int i = 1; i <= n; ++i){
        cin>>num1[i];
        //在这里调用函数,如果不能被2到根号num1[i]且不等于1,则他是质数
        if(judge(num1[i]) && num1[i] != 1){
            //使用上面提到的小技巧将这些数存储下来
            num2[++cnt] = num1[i];
        }
    }
    //使用上面说的技巧将新的数据遍历
    for(int i = 1; i <= cnt; ++i){
        //在这里调整输出,输出非第一个数的前面的空格
        if(i != 1) cout<<" ";
        cout<<num2[i];
    }cout<<endl;
    return 0;
}

标签:P5736,return,函数,int,质数,深基,cnt,num,num1
来源: https://www.cnblogs.com/a-night/p/16216636.html