1 solutions

  • 0
    @ 2025-11-5 19:49:20

    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;
    }
    
    

    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;
    }
    
    • 1

    Information

    ID
    19709
    Time
    1000ms
    Memory
    32MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By