什么是素数?

“素数”又称作“质素”,是指大于1的自然数,除了1与其自身外,不能被其它自然数整除的数,被称为素数(质素)。

如何求出n以内的素数?

这里总结出两种方法,并以这两种方法做讲解。分别是“筛选法”与“试除法”。

①筛选法:

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

②试除法:

判断某个数是不是素数,就用它与它之前所有的整数逐个进行整除一遍,如果没有能够被它整除的数,那么它就是素数。
比如:判断7是不是素数,用7整除1–6这六个数,结果这六个数都不能被7整除,那么7就是素数。

两种方法的具体实现

方法一:筛选法

//方法一:筛选法
#include <stdio.h>
int main()
{int n = 0;    //输入范围int arr[101];printf("筛选法-----\n");printf("请输入范围:");scanf("%d",&n);printf("素数:");for (int i = 2; i <= n; i++){            arr[i] = i;     //从2开始包括到n为止的数都存进数组里面//列举出所有的除数for (int j = 2; j <= n; j++){for (int k = j+1; k <= n; k++){if (arr[k]%j == 0)  //如果余数是0,说明被整除(不是素数)。{arr[k] = 0; //之所以置0,就是为了把素数留下。}    }                }}//打印输出素数for (int i = 2; i <= n; i++){if (arr[i] != 0){printf("%d " ,arr[i]);}}printf("\n");return 0;
}

运行结果:

方法二:试除法

方法二:试除法
#include <stdio.h>
int main()
{int n = 0;int i = 0;int j = 0;printf("试除法-----\n");printf("请输入范围:");scanf("%d",&n);printf("素数:");//判断i是否为素数for (i = 2; i <= n; i++){/*用i把i到i-1的数看看能不能进行整除,如果能整除,则说明这个数不是素数那么就来到if判断*/for (j = 2; j < i; j++){if (i%j == 0){break;}                }if (j == i)     //说明已经试除到最后一个数,还未能被整除,就说明是素数。{printf("%d ",j);  //打印输出素数}}printf("\n");  return 0;
}

运行结果:

总结:

看到这里,想必对这两种方法已经有了自己的认识。“试除法”中间不用把数值先存起来,节省了一定的空间,同时也没有那么耗时。
这是我了解到的两种方法,如有不对的地方,还望大家多多指点。

【刷题】求出一定范围内的素数相关推荐

  1. c语言程序找出500以内的所有素数,c语言求出给定范围内的所有质数

    程序功能: 输入一个整数,要求打印出这个整数以内的所有质数. 程序示例: #include #include #include bool IsPrime(int x) { bool bResult = ...

  2. 根据时间段,求出时间段范围内的每月最后一周 周二

    最近做系统,用户需求按月统计,但月非自然月,是自定义的:上个月月最后一周周二,到本月最后一周周二算一个月.所以做了一个通用类,根据时间段,采用笨方法~~算出该时间段范围内的每个月最后一周周二具体的日期 ...

  3. c语言练习7——求出小于或等于lim的所有素数应放在aa数组中

    功能:求出小于或等于lim的所有素数应放在aa数组中,并返回所求出素数的个数 思路:1)使用for循环查找所有小于lim的数: 2)使用内循环判断是否为素数: #include<conio.h& ...

  4. js第2章基本语法 课后习题——求出1~100之间的素数、求红白黑球

    <JavaScript前端开发案例教程>黑马程序员编著,中国工信出版集团,人民邮电出版社-课后习题 目录 一.填空题 二.判断题 三.选择题 四.编程题 1.请编写程序求出1~100之间的 ...

  5. 求出100~200之间的素数

    求出100~200之间的素数的个数,并求出所有的素数. 分析:素数定义是只能被1和该数本身整除 package com.math.forth;/*** 求出100~200之间的素数的个数,并求出所有的 ...

  6. C语言试题二十九之编写函数int function(int lim,int aa[max])求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。

    1. 题目 编写函数int function(int lim,int aa[max]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数. 2 .温馨提示 C语 ...

  7. 求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序

    已知数据文件IN14.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中.请编制一个函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此 ...

  8. C语言课堂案例_求出小于或等于lim的所有素数并在a数组里,并返回素数的个数

    fun()功能: 求出小于或等于lim的所有素数并在a数组里,并返回素数的个数 #include<stdio.h> #include<conio.h> #include< ...

  9. 20.编写函数int fun(int lim,int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。

    20.编写函数int fun(int lim,int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数. 效果 代码 #include &l ...

最新文章

  1. 高性能Server---Reactor模型
  2. 深度学习之利用TensorFlow实现简单的卷积神经网络(MNIST数据集)
  3. JAVA通信编程(五)——串口通讯的补充说明
  4. JsonRequestBehavior.AllowGet 方便浏览器调试
  5. T-SQL中REPLACE的用法_字符串替换
  6. python 线程池_老程序员的经验分享:Python 从业十年是种什么体验?
  7. 20155234 2016-2017-2 《Java程序设计》第5周学习总结
  8. 蝗虫算法java代码_蝗虫搜索算法 蝗虫算法:蝗虫优化算法是模拟自然界蝗虫种群捕食行为而提出的一 联合开发网 - pudn.com...
  9. hadoop自定义权限
  10. windows mac linux 木马,针对Linux Windows macOS系统Adwind木马广告攻击
  11. 论文笔记_S2D.43_2018-CVPR_单张RGB-D图像的深度补全
  12. 用nload查看LINUX的网络流量
  13. 使用Gpu恢复7z密码
  14. 判断四张扑克牌能否凑成24点游戏算法
  15. Python为什么叫爬虫?Python与爬虫有什么关系?
  16. dnf连不上服务器删什么文件,DNF:4.9更新“无法上游戏”,删1个文件才可登录,策划不争气!...
  17. 微软Windows的 EAPHost 简介
  18. 一个 pcie 插槽损坏的 h77n-wifi(BIOS添加nvme模块实现pcie启动操作系统)
  19. 《基于小型训练集的深度学习迁移的食用毒蘑菇机器视觉识别系统》论文笔记
  20. 唐太宗管理之道:收人,收心,收天下

热门文章

  1. 专科生从实习到现在两年,入行回顾和总结。 有收获,有失去,有遗憾,哪怕前路迷茫,仍要继续前行。
  2. MP3文件的结构与编程
  3. 【信息检索】Java简易搜索引擎原理及实现(一)建立倒排索引
  4. Abaqus与NX冲突解决方法
  5. python wordcloud详解_wordcloud详解
  6. Linux导入导出数据库
  7. 数字银行成长性和盈利能力可期
  8. 德富莱智能抹墙机器人_技术谈丨广田智能抹墙机器人,让建筑不再受制于人
  9. 【论文系列解读】StableDiff总结
  10. python withopen还要close吗_Python - with open()、os.open()、open()的详细使用