1 条题解

  • 0
    @ 2025-4-7 21:19:28

    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

    信息

    ID
    1131
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者