Advertisement

求1~1000的质数(素数)

阅读量:

题目:求1~1000的质数(素数)

思路:素数、即质数,是在大于1的整数中只能被1和其自身整除的数。检查一个正整数 N 是否为素数,最简单的方法就是试除法,将该数N 用小于等于根号N 的所有素数去试除,若均无法整除,则 N 为素数。

代码:

复制代码
 #include <stdio.h>

    
 #include <math.h>
    
  
    
 #define MAXSIZE 1000
    
  
    
 int main()
    
 {
    
     int prime[500];
    
     int size = 0;
    
     int index = 0;
    
     int isGet = 0;
    
     int sqrt_value = 0;
    
     int prime_index = 0;
    
  
    
     printf("1~1000的素数: ");
    
     prime[0] = 2;
    
     prime[1] = 3;
    
     size = 2;
    
     index = 4;
    
  
    
     for(;index < MAXSIZE;index ++)
    
     {
    
     sqrt_value = sqrt(index);
    
  
    
     prime_index = 0;
    
     isGet = 1;
    
     while((prime_index < size)&& (prime[prime_index] <= sqrt_value))
    
     {
    
         if(index % prime[prime_index] == 0)
    
         {
    
             isGet = 0;
    
             break;
    
         }
    
         prime_index ++;
    
     }
    
     if(isGet == 1)
    
     {
    
  
    
         prime[size] = index;
    
         size ++;
    
     }
    
     }
    
  
    
     for(prime_index = 0;prime_index < size;prime_index++)
    
     {
    
     printf("%d ",prime[prime_index]);
    
     }
    
     printf("\n共%d个.\n",size);
    
     return 0;
    
 }

全部评论 (0)

还没有任何评论哟~