求前N个质数之和

求前N个质数之和,不知正确不正确。

 

/**********************************************

求前N个质数之和
$ ./a.out             
2 3 5 7 11 13 17 
sum: 58
**********************************************/


#include <stdio.h>
#include <stdlib.h>

/* 素数 */
int is_prime( int num)
{
         int i;
         for (i= 2; i<=num/ 2; i++)
                 if (num%i ==  0)
                         return  0;
                 return  1;
}

// not used
void print_prime( int num)
{
         int x = 1;
         while (x <= num)
        {
                 if (is_prime(x))
                        printf( "%d ", x);
                x +=  1;
        }
}

int prime( int n)
{
         int tmp =  1;
         int i =  0;
         int sum =  0;
        
         while (i < n)
        {
                 while ( 1)
                {
                        tmp++;
                         if (is_prime(tmp))
                        {
                                printf( "%d ", tmp);
                                sum += tmp;
                                 break;
                        }
                }
                i++;
        }
         return sum;
}

int main( void)
{
         int sum;
        sum = prime( 7);
        printf( "/nsum: %d/n", sum);
         return  0;
}

 

你可能感兴趣的:(求前N个质数之和)