zoukankan      html  css  js  c++  java
  • 利用数组求前n个质数

    #include <stdio.h>
     
    #define N 50
    int main(int argc, char *argv[])
    {
        int primes[N];/*引入质数素*/
        int pc,m,k;/*pc质数个数,m测试的数,k能够被整除的数*/
     
        printf("The first %d prime number are: 
    ",N);
        primes[0]=2; /*2是第一个质数*/
        pc=1; /*已经有1个质数*/
        m=3;/*被测试的数从3开始*/
        while(pc<N)
        {
            /*调整m 使它为下一个质数*/
            k=0;
            while(primes[k]*primes[k]<=m)
            {
                if(m%primes[k]==0)
                {
                    /*m是合数*/
                    m+=2;/*让m取下一个奇数*/
                    k=1;/*不必用primes[0]=2去测试m,所以k从1开始*/
                }
                else
                {
                    k++;/*继续用一个质数去测试*/
                }
            }
            primes[pc++]=m;
            m+=2;/*除2外,其它质数均是奇数*/       
        }
         
        /*输出primes[0]到primes[pc-1]*/
        for(k=0;k<pc;k++)
        {
            printf("%4d",primes[k]);
        }
        printf("
    
     Press any key to quit...
    ");
        getchar();
    }
    

     算法的主要思想是:

    如果整数m,如果它不能被小于它的质数整除,则m也是质数。引入质数表primes[],已求得的质数个数为pc.

  • 相关阅读:
    软件使用[17]
    软件使用[20]
    软件使用[12]
    软件使用[10]
    软件使用[22]
    软件使用[06]
    软件使用[11]SlickEdit
    软件使用[19]
    uva 10717【Mint】
    uva 10791【 Minimum Sum LCM】
  • 原文地址:https://www.cnblogs.com/lumouren009/p/3182171.html
Copyright © 2011-2022 走看看