利用数组求前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",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("\n\n Press any key to quit...\n");
    getchar();
}

 算法的主要思想是:

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

原文链接: https://www.cnblogs.com/lumouren009/p/3182171.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    利用数组求前n个质数

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/95281

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月10日 上午3:02
下一篇 2023年2月10日 上午3:02

相关推荐