首页 > 代码库 > CF 113C
CF 113C
求区间 [l,r] 满足 素数 = a^2+b^2 a b为任意整数
打素数表,如何证明 此时的素数满足 %4==1
1 #include<iostream> 2 #include<stdio.h> 3 #include<cstring> 4 #include<cstdlib> 5 #include<bitset> 6 using namespace std; 7 const int maxn=3e8+10; 8 9 bitset<maxn>prime; 10 int main() 11 { 12 int l,r,i,j; 13 while(scanf("%d%d",&l,&r)>0) 14 { 15 prime.set(); 16 for(i=3;(j=i*i)<=r;i=i+2)//i*i<=r 17 { 18 if(prime[i]==false)continue; 19 for(;j<=r;j=j+i+i) // !!! j=j+i+i; 20 prime[j]=false; 21 } 22 int ans=0; 23 if(l<=2 && 2<=r) ans++; 24 for(i=5;i<=r;i=i+4) 25 if(l<=i && prime[i]==true) ans++; 26 printf("%d\n",ans); 27 } 28 return 0; 29 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。