埃拉托色尼筛选法

埃拉托色尼筛选法是一种寻找质数的算法,通过挖去倍数来筛选。首先排除1,然后使用下一个数p去除其倍数,直到p小于范围的平方根。文中提供了递归和循环两种代码实现。
摘要由CSDN通过智能技术生成

埃拉托色尼筛选法

简介

针对自然数列中的自然数而实施的,用于求一定范围内的质数。

算法思想

  • 挖去1;
  • 用刚才被挖去的数的下一个数p,把p的倍数挖掉;
  • 检查p是否小于sprt(n)的整数部分,如果是,则返回(2)继续执行,否则就结束;
  • 纸上剩下的数就是素数。

代码

递归实现

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

int* Get_Prime(int num)
{
    int *a = NULL, *get = NULL;
    int *p = NULL, *q = NULL;
    int i = 0, j = 0;

    /*
     *  the exit.
     */
    if (num <= 10)
    {
        a = malloc (sizeof(int) * 10);

        for (i = 0; i < 10; i++)
            a[i] = 0;

        a[2-1] = 2; a[3-1] = 3;
        a[5-1] = 5; a[7-1] = 7;

        a[num - 1] = -1;

        return a;
    }

    /*
     *  step 1: get the pri
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值