none
求1~10000之间质数的算法。 RRS feed

  • 问题

  • 下面是我写的,朋友说嵌套的语句算起来慢,求改进

    void main()
    {
    	int num1,num2,sum,line,ans;
    	for(num1=1,num2=1,sum=0,ans=0,line=0;num1<=10000;num1++,num2=1,sum=0)
    	{
    		for(;num2<=num1;num2++)
    		{
    			if(num1%num2==0)
    			{
    				sum++;
    			}
    		}
    		if(sum==2)
    		{
    			cout<<num1<<" ";
    			ans++;
    			line++;
    		}
    		if(line==5)
    		{
    			cout<<endl;
    			line=0;
    		}
    	}
    	cout<<endl<<"一共有"<<ans<<"个质数"<<endl<<"\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\\a\a\a\a\a";
    }
    

    2011年6月17日 9:20

答案

  • 筛选法,这是除了概率算法外差不多最快的算法

    http://zh.wikipedia.org/wiki/%E5%9F%83%E6%8B%89%E6%89%98%E6%96%AF%E7%89%B9%E5%B0%BC%E7%AD%9B%E6%B3%95

     

    看了你就懂了

    2011年6月17日 9:44

全部回复