用筛选法求素数

该博客介绍了一种使用筛选法在C语言中求解n以内素数的方法。通过创建数组存储2到n的正整数,依次将数组中能被2、3等整除的数清零,保留下来的非零数字即为素数。
摘要由CSDN通过智能技术生成

目录

        1.题目

        2.思路

        3.代码实现


       1.题目


                用筛选法求n以内的素数。筛选法求解过程为:将2~n之间的正整数放在数组内存储,将数组中2之后的所有能被2整除的数清0,再将3之后的所有能被3整除的数清0 ,以此类推,直到n为止。数组中不为0 的数即为素数。
                数组中的数一个一个除以n(n从2开始),将所有是n的倍数清零

        2.思路

        用一个数组来接收一定范围内的数,如果这些数除了本身和1之外,还是其他数的倍数直接清

   零。(主要是如何筛选他是不是别的数的倍数)

        3.代码实现

        

#include <stdio.h>
int main()
{
    int n = 0;
    int arr[100] = { 0 };
    int i = 0;
    while (~scanf("%d", &n))
    {
        for (i = 2; i <= n; i++)//因为是连续的整数且从二开始所以数组的下标也可以从2开始方便后面的计算
        {
            arr[i] = i;//下标于数相对应

        }
        for (i = 2; i <= n; i++)//查看数组里的数是否是别的数的倍数
        {
            int j = 0;
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值