1462 素数和
时间限制: 1 s
空间限制: 64000 KB
题目等级 : 青铜 Bronze
题目描述 Description
给定2个整数a,b 求出它们之间(不含a,b)所有质数的和。
输入描述 Input Description
一行,a b(0<=a,b<=65536)
输出描述 Output Description
一行,a,b之间(不含a,b)所有素数的和。
样例输入 Sample Input
39 1224
样例输出 Sample Output
111390
数据范围及提示 Data Size & Hint
注意没有要求a<b
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 using namespace std; 5 int vis[69999]; 6 void sieve_method() 7 { 8 for(int i=2;i<=sqrt(69999)+0.5;i++) 9 { 10 if(!vis[i]) 11 for(int j=i*i;j<=69999;j+=i)vis[j]=1; 12 } 13 } 14 int main() 15 { 16 sieve_method(); 17 int n,m,ans=0; 18 scanf("%d%d",&n,&m); 19 if(n>m) 20 { 21 n=n+m;m=n-m;n=n-m; 22 } 23 for(int i=n+1;i<m;i++) 24 if(!vis[i])ans+=i; 25 printf("%d",ans); 26 return 0; 27 }