c++问题超简单,完成追加5

来源:百度知道 编辑:UC知道 时间:2024/05/21 13:54:08
编写程序;计算500~800区间内素数的个数cnt,并按所求的素数的值从大到小的顺序,再计算其间隔减、加之和,即第一个素数—第二个素数+第三个素数—第四个素数……的值sum
不想编了,各位帮忙哈~

#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <cmath>

using namespace std;

bool prime (int m)
{
int r = sqrt (m);
for (int i = 2; i <= r; i++)
if (m % i == 0)
return false;
return true;
}

int main(int argc, char* argv[])
{
int cnt = 0,
sum = 0;
vector<int> vInt;
ostream_iterator<int,char> outIt(cout," ");

for (int i=500; i<801; ++i)
{
if (prime(i))
{
sum += i;
++cnt;
vInt.push_back(i);
}
}
sort(vInt.begin(),vInt.end(),greater<int>());
copy(vInt.begin(),vInt.end(),outIt);
cout<<endl;
cout<<"sum:"<<sum<<endl
<<"cnt:"<<cnt<<endl;
return 0;
}

//结果如下:
797 787 773 769 761 7