#include <iostream>
#define int long long
using namespace std;
int fastpow(int b,int e,int m){
if(b==1||e==0) return 1;
int r=fastpow(b*b%m,e/2,m)%m;
if(e%2!=0) r=r*b%m;
return r%m;
}
bool isprime(int p){
if(p==1) return false;
int pr[30]={0,2,3,5,7,11,13,17,19};
for(int i=1;i<=8;i++) if(p==pr[i]) return true;
if(p%2==0) return false;
for(int i=1;i<=8;i++){
if(p%pr[i]==0&&p!=pr[i]) return false;
if(fastpow(pr[i],p-1,p)!=1) return false;
}
return true;
}
signed main(){
int a,b,cnt=0;
cin>>a>>b;
for(int i=a;i<=b;i++) if(isprime(i)) cnt++;
cout<<cnt<<endl;
return 0;
}
在0≤B≤109且B−A≤100000的情况下WA了,请问为什么?