求第1000个素数
如题
[解决办法]
bool isprime=1; 在循环里没有重置。
[解决办法]
你忘了在第一个循环里让isprime变为1了
[解决办法]
#include <iostream>#include <math.h>using namespace std;int get_prime(int n){ int *p_r = new int[n]; int count = 1; p_r[0] = 2; p_r[1] = 3; for(int i=3; count!=n; i+=2) { int sqrt_i = sqrt(i); for(int j=1; sqrt_i>=p_r[j] && i%p_r[j]!=0; ++j); if(sqrt_i<p_r[j]) { p_r[count++] = i; } } return p_r[count-1];}int main(){ cout<<get_prime(55)<<endl; return 0;}
[解决办法]
#include <iostream>
#include <math.h>
using namespace std;
int get_prime(int n)
{
int *p_r = new in……
[解决办法]
//获取n以内(含n)的所有质数,并返回质数的个数int TYCppStdLib::GetPrime(int n, vector<int> &vec){ vec.clear(); if(n<2) return 0; if(2==n) { vec.push_back(2); return 1; } vec.push_back(2); for(int i=3; i<=n; i=i+2) if(IsPrime(i)) vec.push_back(i); return static_cast<int>(vec.size());}