1.7.4求质数的个数

1.7.4求质数的个数
【问题描述】
输入一个整数n,求2~n之间质数的个数
【输入】
输入一个整数
【输出】
输出一行:表示有质数的个数
【样例输入】
3
【样例输出】
2
【样例说明】
样例说明:在2~3之间有,2和3两个质数
【数据规模】:
2<=n<=1000000

#include <iostream>
using namespace std;

const int Max = 1000001;
int check[Max] = {0};
int prime[Max] = {0};

void isPrime(){
    for(int i = 2; i < Max; i++){
        if(!check[i]){
            prime[++prime[0]] = i;
        }
        for(int j = 1; j <= prime[0] && i*prime[j] < Max; j++){
            check[i*prime[j]] = 1;
            if(i%prime[j] == 0){
                break;
            }
        }
    }
}

int main(int argc, const char * argv[]) {
    isPrime();
    
    int n,num = 0;//计数
    cin >> n;
    for(int i = 2;i <=n ; i++){
        if(!check[i]){
            num++;
        }
    }
    cout << num << endl;
    
    return 0;
}```

上一篇:mysql-慢sql优化


下一篇:2019最新Android中级面试题目汇总解答,kotlin协程更新ui