新手天翼
题目链接: 酷町堂:9830
题目描述 De**ion
输入一个整数n,然后输出2到n之间所有的质数,再输出这些质数相加的和。
输入描述 Input De**ion
1行:一个正整数n;
输出描述 Output De**ion
输出共两行;
第1行:2到n之间所有的质数,数字之间用空格隔开;
第2行:一个整数,表示这些质数的和;
样例输入 Sample Input
10
样例输出 Sample Output
2 3 5 7 17
数据范围及提示 Data Size & Hint
30%数据:2<=n<=1000;
60%数据:2<=n<=100000;
100%数据:2<=n<=10000000;
代码:WA60分代码:
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<string>
#include<set>
#include<cstring>
#include<map>
#include<sstream>
using namespace std;
int n,sum;
bool b[10000000];
int main(){
cin>>n;
b[1]=1;
for(int i=2;i<=sqrt(n);i++){
if(b[i]==0){
for(int j=i*2;j<=n;j+=i){
b[j]=1;
}
}
}
for(int i=1;i<=n;i++){
if(b[i]==0){
cout<<i<<" ";
sum+=i;
}
}
cout<<endl;
cout<<sum;
return 0;
}