[CodeForces][质数][筛法] CF113C Double Happiness
费马二平方定理
知道这个这题就完了
注意范围极大需要用 bitset
代码:
# include <iostream>
# include <cstdio>
# include <bitset>
// # define int long long
# define MAXN 300000005
std::bitset<MAXN>notPrime;
int prime[20000005], cntP;
signed main(){
int l, r;
scanf("%d%d", &l, &r);
// for(int i = 2; i <= r; i++){
// if(!notPrime[i]){
// for(int j = i; (long long)(j * i) <= r; j++){
// // std::cout<<i*j<<' ';
// notPrime[i*j] = 1;
// }
// }
// }
for(int i = 2; i <= r; i++){
if(!notPrime[i]){
prime[++cntP] = i;
}
for(int j = 1; j <= cntP && 1ll * prime[j] * i <= (long long)3e8; j++){
notPrime[i*prime[j]] = 1;
if(!(i % prime[j])){
break;
}
}
}
// puts("FUCK");
int ans = 0;
for(int i = 1; i <= cntP; i++){
if(l <= prime[i] && prime[i] <= r && (!((prime[i]-1)%4))){
ans++;
}
}
if(l <= 2 && 2 <= r){
ans++;
}
printf("%d", ans);
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步