Advertisement

素数的最短距离算法

阅读量:
复制代码
 #include <cstdio>

    
 #include <cstring>
    
 #include <cmath>
    
 using namespace std;
    
  
    
 #define MAX_LENGTH 50000001
    
  
    
 bool prime[MAX_LENGTH];
    
  
    
 void CreatePrimeTable()
    
 {
    
 	int i, j;
    
  
    
 	memset(prime, true, sizeof(prime)); // 初始化全为1
    
 	prime[0] = prime[1] = false;  // 0和1不是素数
    
  
    
 	for (i = 2; i * i < MAX_LENGTH; i++)
    
 	{
    
 		if (prime[i]) // 如果是素数
    
 		{
    
 			// 如果i是素数,那么能整除i的肯定不是素数
    
 			for (j = i * 2; j < MAX_LENGTH; j += i)
    
 			{
    
 				prime[j] = false;
    
 			}
    
 		}

全部评论 (0)

还没有任何评论哟~