#include <iostream>
using namespace std;
int prime[5140];
bool G(int x){
if (x < 2) return 0;
if (x == 2) return 1;
for (int i = 2;i * i <= x;i++)
if (x % i == 0)
return 0;
return 1;
}
inline bool P(int x){
if (x < 2) return 0;
if (x == 2) return 1;
for (int i = 0;i < 5133 && prime[i] * prime[i] <= x;i++)
if (x % prime[i] == 0)
return 0;
return 1;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int l,r,pail = 0,ans = 0;
cin >> l >> r;
for (int i = 2;i <= 50000;i++)
if (G(i))
prime[pail++] = i;
for (int i = l;i <= r;i++)
if (P(i))
ans++;
cout << ans << endl;
return 0;
}
这个程序中的唯一开inline的函数,不开#9超时(1.2s+),开了降到607ms,可以AC,但其他测试点都几乎不变,为什么?