【刷题】求出一定范围内的素数
什么是素数?
“素数”又称作“质素”,是指大于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;
}
运行结果:
总结:
看到这里,想必对这两种方法已经有了自己的认识。“试除法”中间不用把数值先存起来,节省了一定的空间,同时也没有那么耗时。
这是我了解到的两种方法,如有不对的地方,还望大家多多指点。
【刷题】求出一定范围内的素数相关推荐
- c语言程序找出500以内的所有素数,c语言求出给定范围内的所有质数
程序功能: 输入一个整数,要求打印出这个整数以内的所有质数. 程序示例: #include #include #include bool IsPrime(int x) { bool bResult = ...
- 根据时间段,求出时间段范围内的每月最后一周 周二
最近做系统,用户需求按月统计,但月非自然月,是自定义的:上个月月最后一周周二,到本月最后一周周二算一个月.所以做了一个通用类,根据时间段,采用笨方法~~算出该时间段范围内的每个月最后一周周二具体的日期 ...
- c语言练习7——求出小于或等于lim的所有素数应放在aa数组中
功能:求出小于或等于lim的所有素数应放在aa数组中,并返回所求出素数的个数 思路:1)使用for循环查找所有小于lim的数: 2)使用内循环判断是否为素数: #include<conio.h& ...
- js第2章基本语法 课后习题——求出1~100之间的素数、求红白黑球
<JavaScript前端开发案例教程>黑马程序员编著,中国工信出版集团,人民邮电出版社-课后习题 目录 一.填空题 二.判断题 三.选择题 四.编程题 1.请编写程序求出1~100之间的 ...
- 求出100~200之间的素数
求出100~200之间的素数的个数,并求出所有的素数. 分析:素数定义是只能被1和该数本身整除 package com.math.forth;/*** 求出100~200之间的素数的个数,并求出所有的 ...
- C语言试题二十九之编写函数int function(int lim,int aa[max])求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。
1. 题目 编写函数int function(int lim,int aa[max]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数. 2 .温馨提示 C语 ...
- 求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序
已知数据文件IN14.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中.请编制一个函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此 ...
- C语言课堂案例_求出小于或等于lim的所有素数并在a数组里,并返回素数的个数
fun()功能: 求出小于或等于lim的所有素数并在a数组里,并返回素数的个数 #include<stdio.h> #include<conio.h> #include< ...
- 20.编写函数int fun(int lim,int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。
20.编写函数int fun(int lim,int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数. 效果 代码 #include &l ...
最新文章
- 高性能Server---Reactor模型
- 深度学习之利用TensorFlow实现简单的卷积神经网络(MNIST数据集)
- JAVA通信编程(五)——串口通讯的补充说明
- JsonRequestBehavior.AllowGet 方便浏览器调试
- T-SQL中REPLACE的用法_字符串替换
- python 线程池_老程序员的经验分享:Python 从业十年是种什么体验?
- 20155234 2016-2017-2 《Java程序设计》第5周学习总结
- 蝗虫算法java代码_蝗虫搜索算法 蝗虫算法:蝗虫优化算法是模拟自然界蝗虫种群捕食行为而提出的一 联合开发网 - pudn.com...
- hadoop自定义权限
- windows mac linux 木马,针对Linux Windows macOS系统Adwind木马广告攻击
- 论文笔记_S2D.43_2018-CVPR_单张RGB-D图像的深度补全
- 用nload查看LINUX的网络流量
- 使用Gpu恢复7z密码
- 判断四张扑克牌能否凑成24点游戏算法
- Python为什么叫爬虫?Python与爬虫有什么关系?
- dnf连不上服务器删什么文件,DNF:4.9更新“无法上游戏”,删1个文件才可登录,策划不争气!...
- 微软Windows的 EAPHost 简介
- 一个 pcie 插槽损坏的 h77n-wifi(BIOS添加nvme模块实现pcie启动操作系统)
- 《基于小型训练集的深度学习迁移的食用毒蘑菇机器视觉识别系统》论文笔记
- 唐太宗管理之道:收人,收心,收天下
热门文章
- 专科生从实习到现在两年,入行回顾和总结。 有收获,有失去,有遗憾,哪怕前路迷茫,仍要继续前行。
- MP3文件的结构与编程
- 【信息检索】Java简易搜索引擎原理及实现(一)建立倒排索引
- Abaqus与NX冲突解决方法
- python wordcloud详解_wordcloud详解
- Linux导入导出数据库
- 数字银行成长性和盈利能力可期
- 德富莱智能抹墙机器人_技术谈丨广田智能抹墙机器人,让建筑不再受制于人
- 【论文系列解读】StableDiff总结
- python withopen还要close吗_Python - with open()、os.open()、open()的详细使用