描述
输入m,输出2到m之间(包含2和m)所有素数之和。
输入 一个正整数n,表示测试案例的数量。
每组案例中有一个正整数m。
输出 针对每组案例,输出一个整数,表示2到m之间(包含2和m)所有素数之和。每组案例输出完都要换行。
样例输入 复制样例 2
5
10
样例输出 10
17
HINT 2到5之间素数的和是2+3+5=10
2到10之间素数的和是2+3+5+7=17
解:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int a,m=1,sum=0;
cin>>a;
for(int t=2;t<=a;t++)
{
m=1;
if(t>=2)
{
if((t==3)||(t==2)) m=1;
else
{
for(int j=2;j<=sqrt(t);j++)
{
if((t%j)==0) m=0;
}
}
}
else m=0;
if(m) sum+=t;
}
cout<<sum<<endl;
}
return 0;
}