1 条题解

  • 0
    @ 2024-12-24 10:06:01

    C :

    #include<stdio.h>
    #include<math.h>
    
    int IsPrime(int n);
    
    int main()
    {
    	int count = 0;
    	int i;
    	for(i = 1;count < 100003;i++)
    	{
    		if(IsPrime(i))
    		{
    			count++;
    		}
    	}
    	printf("%d",i-1);
    }
    int IsPrime(int num)  
    {  
        if (num == 2 || num == 3)  
    	{  
            return 1;  
    	}  
    	if (num % 6 != 1 && num % 6 != 5)  
    	{  
        	return 0;  
        }  
        for (int i = 5; i*i <= num; i += 6)  
        {  
            if (num % i == 0 || num % (i+2) == 0)  
    	    {  
    	        return 0;  
    	    }  
        }  
    	return 1;  
    }
    
    

    C++ :

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    const int M =1299745;
    bool mark[M];
    void Seive()
    {
    	memset(mark,1,sizeof(mark));
    	mark[0] = mark[1] = 0;
    	for(int i = 2;i <= sqrt(M);i++)
    	{
    		if(mark[i])
    		{
    			for(int j = i*i; j< M;j+=i)
    				mark[j] = 0;
    		}
    	}
    }
    int main()
    {
    	Seive();
    	int i,conter= 0;
    	for(i = 0;i <= M;i++)
    	{
    		if(mark[i])
    			conter++;
    		if(conter == 100002)
    		{
    			printf("%d",i);
    			break;
    		}
    			
    	}
    		
    	return 0;
    }
    
    • 1

    信息

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