游客 Signup | Login
中文 | En

1518 - Prime Number

Output the k-th prime number.

Input

k≤10000

Output

The k-th prime number.

Examples

Input

10
50

Output

29
229

Solution C

#include<stdio.h>
int main()
{
	int a[10100],i,j,flag,m,n,i1,i2;
	a[1]=2;a[2]=3;m=2;
	for(i=6;i<=105000;i+=6)
	{
		i1=i-1;
		i2=i+1;
		flag=1;
		for(j=1;a[j]*a[j]<=i1;j++)
			if(i1%a[j]==0)
			{
				flag=0;
				break;
			}
		if(flag)
			a[++m]=i1;
		flag=1;
		for(j=1;a[j]*a[j]<=i2;j++)
			if(i2%a[j]==0)
			{
				flag=0;
				break;
			}
		if(flag)
			a[++m]=i2;
	}
	while(scanf("%d",&n)!=EOF)
		printf("%d\n",a[n]);
	return 0;
}

Solution C++

#include<stdio.h>
#include<string.h>

bool isprime[1000000];
int p[10000];

int main()
{
	int i,temp,j=0,k;
	memset(isprime,true,sizeof(isprime));
	isprime[0]=isprime[1]=false;
	for(i=2;i<1000000;i++)
	{
		if(isprime[i]==true)
		{
			p[j++]=i;
			if(j==10000)
				break;
			temp=2*i;
			while(temp<1000000)
			{
				isprime[temp]=false;
				temp+=i;
			}
		}
	}
	while(scanf("%d",&k)!=EOF)
		printf("%d\n",p[k-1]);
	return 0;
}
Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题