33,009
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
long f(int *A,int k)
{
if (k==1)
{
return 2;
}
A[0]=2;
int i=3;
int index;
for (;A[k-1]==0;i+=2)
{
for (index=0;A[index]!=0;++index)
{
if (i%A[index]==0)
{
break;
}
}
if (A[index]==0)
{
A[index]=i;
}
}
return A[k-1];
}
int main()
{
int n=10000;
int *A=new int[n];
for (int i=0;i<=n-1;++i)
{
A[i]=0;
}
int k;
cin>>k;
cout<<f(A,k);
system("pause");
return 0;
}
for (i=0;i<num;i++)
{
if(p_list[i]==0)break;
if(m%p_list[i]==0)
{
sign = 0;
break;
}
}
// 算法:打印出第n个素数
// 循环判断每一个2以上的奇数是否是素数,判断方法是用它除以比它小的素数。
// 从3开始除,除到它的开方数就判断结束。如果都不能整除,就是素数。
// 如果是素数,添加到素数链表,并开始下一次判断
// 当素数表超过给定值时,打印素数表最后一项
#include <iostream>
#include <vector>
#include <math.h>
void main( void )
{
typedef std::vector<int> PRIMTABLE;
PRIMTABLE Primes( 1, 2 ); // 素数表
for ( int i = 3; Primes.size() < 10000; i += 2 )
{ // 上面的10000表示输出第10000个素数,可以改为任意数
int nSqrt = (int)sqrt( (float)i );
PRIMTABLE::iterator cur;
for ( cur = Primes.begin(); *cur <= nSqrt && 0 != i % *cur; ++cur );
if ( *cur > nSqrt ) Primes.push_back( i );
}
std::cout << Primes.back() << std::endl;
}