#include<iostream>
#include<cmath>
#include<ctime>
#include<vector>
#include<numeric>
#include<tchar.h>
using namespace std;
bool IsPrime(const int n)
{
if(n%2==0||n==1)return false;
int j=sqrt((double)n);
for(int i=3;i<=j;i+=2){
if(n%i==0)return false;
}
return true;
}
int _tmain(int argc,char *argv[])
{
clock_t begin,end;
begin=clock();
std::vector<int> vec;
int num=3;
for(int n=1;n!=10000;){
if(IsPrime(num)){
vec.push_back(num);
++n;
}
num+=2;
}
std::cout<<accumulate(vec.begin(),vec.end(),2)<<std::endl;
end=clock();
std::cout<<end-begin<<"ms"<<std::endl;
system("pause");
return 0;
}嗯。。。。稍微优化了一下,速度提升了不少,下面我就没本事再优化下去了。
本文介绍了一个C++程序,该程序通过判断素数并计算前10,000个素数的总和来演示基本的算法优化技巧。通过对素数检查逻辑的优化,实现了运行效率的显著提升。

2494

被折叠的 条评论
为什么被折叠?



