文章
211
粉丝
0
获赞
1076
访问
36.0k
#include<bits/stdc++.h>
using namespace std;
const int MAX = 1e7 + 5;
bool isPrime[MAX];// 埃氏筛预处理素数
void sieve() {
// 初始化:假设都是素数
for(int i = 0; i < MAX; i++) isPrime[i] = true;
// 0和1:1是素数(题目特殊规定),0不是
isPrime[0] = false;
isPrime[1] = true; // 题目说1也算素数
for(int i = 2; i * i < MAX; i++) {
if(isPrime[i]) {
for(int j = i * i; j < MAX; j += i)
isPrime[j] = false;
}
}
}
int main() {
// 预处理
sieve();
int a, b;
while(cin >> a >> b) {
int count = 0; // 非素数个数
for(int i = a; i <= b; i++) {
if(!isPrime[i])
count++;
}
cout << count << endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发