文章目录

  • 题目
  • 一、思路
  • 二、代码实现

题目

描述

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

输入描述

多组输入,每行输入一个正整数(不大于100)。

输出描述

针对每行输入的整数n,输出两行,第一行,输出n之内(包括n)的素数,用空格分隔

示例

输入:20
输出:
2 3 5 7 11 13 17 19
11

一、思路

常见的求判断素数的方法有试除法,还有就是用sqrt或1/2。筛选法与试除法相似,每个数都要除以除1和它本身之外的数进行判断。筛选法的关键在于:(1)要求将2-n的数字先存入数组中;(2)在将2之后的,注意是2之后的数字能被2整除的清零,然后向后移一位,从3开始,在将3之后的能被3整除的清零,依次类推,直到n。简单说就是最开始指向的是数组的2后3,一轮循环遍历除以2后,数组最开始指向的位置向后偏1,指向数组3后的4,考虑如何平衡循环i和j的值。

二、代码实现

#include<stdio.h>
int main()
{int n;int count=0;int arr[100]={0};while(scanf("%d",&n)!=EOF){int j=0;int i=0;for(i=2;i<=n;i++){arr[j++]=i;//赋值//arr[0]=2,arr[1]=3...arr[18]=20}//清零for(i=2;i<=n;i++)//除数的变化{for(j=i-1;j<n-1;j++)//被除数的变化{//开头的数是+1变化的,所以我们利用iif(arr[j]%i==0){arr[j]=0;}}}//打印//由于会多初始化一个数,所以i<n-1for(i=0;i<n-1;i++){if(arr[i]!=0){count++;printf("%d ",arr[i]);}}printf("\n%d\n",n-1-count);}return 0;
}

【C语言】筛选法求素数相关推荐

  1. 经典算法——筛选法求素数(素数筛选)

    [数值问题]素数筛选 内存限制:128 MB时间限制:1.000 S 题目描述 输入一正整数n(2<=n<=5*10^6),按顺序输出2到n范围内的所有素数. 输入 输入共一行一个数,表示 ...

  2. 筛选法求素数一般方法求素数判断一个数是否是素数

                                      筛选法求素数&一般方法求素数&判断一个数是否是素数 1.判断一个数是否是素数 #include<stdio.h ...

  3. 问题 F: 筛选法求素数

    时间限制: 1 Sec  内存限制: 0 MB 题目描述 筛选法求素数是一种高效求素数的方法,其具体算法如下: 从2开始把连续的整数放入筛中,首先确定筛中第一个数2是素数.并从筛中晒去所有2的倍数(不 ...

  4. Eratosthenes集合筛选法求素数

    Eratosthenes集合筛选法求素数 算法思想 和数因子,和数因子是从素数中产生的,最小的素数为2,m作为合数因子,从2开始,配合k+=m,删除合数因子的倍数,当m不断扩大时,如当m为5的时候,上 ...

  5. c语言筛选法求100之内素数,用筛选法求100之内的素数。

    /*用筛选法求给出范围之内的素数.*/ #include #include int isPrime(int n){//判断素数 for(int i = 2; i < n; i ++){ if(n ...

  6. python使用集合实现筛选法求素数-python素数筛选法浅析

    原理: 素数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.在加密应用中起重要的位置,比如广为人知的RSA算法中,就是基于大整数的因式分解难题,寻找两个超大的素数然后相乘作 ...

  7. python筛选法求素数讲解_埃氏筛选法求素数 Python

    代码如下 def _odd_iter(): # 构建奇数序列 从3开始 n = 1 while True: n = n + 2 yield n def _not_divisible(n): retur ...

  8. 素数筛(筛选法求素数)

    求素数 Problem Description 求小于n的所有素数的数量.(素数筛概念) Input 多组输入,输入整数n(n<1000000),以0结束. Output 输出n以内所有素数的个 ...

  9. 经典中的经典之——筛选法求素数(埃氏筛 | 线性筛)

    题目描述 统计小于非负整数n的质数数量 浑水摸鱼之蛮力验证法 直接上代码 bool is_zen(int x) {int i = 2;while (i * i <= x) {if (x % i ...

  10. ny520 最大素因子 筛选法求素数

    最大素因子 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 GreyAnts最近正在学习数论中的素数,但是现在他遇到了一个难题:给定一个整数n,要求我们求出n的最大素因子 ...

最新文章

  1. 经济寒冬?毕业生找不到好工作?来看看这个。
  2. nRF51822 SDK初体验
  3. SSM框架知识点复习
  4. JFrog Container Registry 搭建Docker镜像仓库 (tar.gz 版本)
  5. 《论文笔记》ROBUST MAP ALIGNMENT FOR COOPERATIVE VISUAL SLAM
  6. Meta http-equiv 大全
  7. 瑶光TechTalk | 迈向多维智慧,智能画像与预测算法剖析
  8. 数据结构——单人名单
  9. 一位全加器Verilog的三种不同的描述
  10. 爱了!再来推荐5个Java项目开发快速开发脚手架。项目经验和私活都不愁了~
  11. Webuploader 出坑记
  12. P3C-PMD自定义规则实战
  13. 转速传感器隔离放大器输出信号隔离变送器正弦波转方波信号隔离器
  14. 英文视频字幕自动生成
  15. Java SE基础知识点总结(四)
  16. 论文笔记: FSA-Net
  17. 《远见》的读后感作文1000字范文
  18. Java类的继承学生研究生类图_UML part3 类图、对象图
  19. 内存不能为“read”或“written”的解决方案
  20. Beyond Compare 设置

热门文章

  1. eos java调用命名sql_普元EOS中命名sql数据集
  2. 2022年双十一有哪些电子产品值得入手、超值电子产品推荐清单
  3. matlab里转置det,matlab矩阵转置命令
  4. Git系列教程(一)——git版本管理
  5. 如何使用fiddler抓取APP接口
  6. 微信小程序图片流动动画效果(附代码,图)
  7. 【嵌入式模块】ESP8266完整教程
  8. FTP文件传输神器:8uftp
  9. OpenCV3编程入门(毛星云)读书笔记(一)
  10. 关于VMware增强型键盘驱动程序