求素数时间测试

求素数时间测试

 

/**/ /*
    求素数
    1000W以内的素数,27063ms
    100W以内的素数,1141ms
    10W以内的素数,47ms
  by蔡东赟于无聊的09.09.22日
*/


#include
< iostream >
#include
< cstdio >
#include
< cstdlib >
#include
< assert.h >
#include
< ctime >
#include
< cmath >
using   namespace  std;

const   int  MAX  =   10000000 ;
int  findvalue[MAX]  =   {2} ;
int  find  =   1 ;


bool  IsPrim( int  value)
{
    assert(value 
>= 2);

    
int flag = (int) sqrt((double)value);

    
if(value == 2
        
return true;

    
for (int i = 0; i < find && i <= flag; i++)
    
{
        
if( (value % findvalue[i]) == 0)
        
{
            
return false;
        }

    }


    findvalue[find
++= value;
    
return true;
}


int  main()
{
    
double start,finish;
    start 
= clock();

    
for (int j = 3;j < MAX; j++)
    
{
        
if (IsPrim(j))
        
{
            
//cout << "" << j << endl;
        }

    }


    finish 
= clock();

    

    cout 
<< "time:" << (finish - start) << "ms" <<endl;
    system(
"pause");
    
return 0;
}

你可能感兴趣的:(求素数时间测试)