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
分类标签 Tags 点此展开
注意最后i的取值范围
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 using namespace std; 5 const int MAXN=10000001; 6 int vis[MAXN]; 7 int tot=0; 8 int main() 9 { 10 int a,b; 11 scanf("%d%d",&a,&b); 12 //a=a+1; 13 //b=b-1; 14 if(a>b) 15 swap(a,b); 16 for(int i=2;i<=sqrt(b);i++) 17 { 18 if(vis[i]==0) 19 { 20 for(int j=i*i;j<=b;j=j+i) 21 { 22 vis[j]=1; 23 } 24 } 25 } 26 for(int i=a+1;i<=b-1;i++) 27 { 28 if(vis[i]==0) 29 tot=tot+i; 30 } 31 printf("%d",tot); 32 return 0; 33 }