C语言 输出100以内的质数
我的代码
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{int num=0;for(int i=2; i<100; i++){int zhishu = 1;for(int j=2; j<=(int)sqrt(i); j++){if(i%j==0){zhishu = 0;}}if(zhishu == 1){printf("%d\n",i);}}return 0;
}
/*
代码不够优越,有很多计算不优良的地方需要改进
如除2以外的偶数都不是质数
大于1的自然数,如果不是质数,可以分解成有限个质数相乘等
注意1既不是质数,也不是合数
*/
参考代码
#include <stdio.h>
#define Max 100 //定义全局变量
int num[Max/2],p=0;//定义存质数的表,p是素数表的下标
//因为1~100内,有一半偶数,一半奇数,偶数除2以外都不是质数,所以数组大小可定义为Max/2
int isPrime(int i){ //判断是否是质数函数
//唯一分解定理:任何一个大于1的自然数N, 如果N不为质数,那么N可以唯一分解成有限个质数的乘积
//如果L=m×n,则必有m≤根号L,n≥根号L
//如果根号L左边都没有L的因子,那右边也不会有,所以只需要看根号L左边的即可
//只看根号L左边:可以用m≤根号L,也可以用m×m≤L,后者更方便,不用考虑小数的处理for(int j=0;num[j]*num[j]<=i;j++){ //只看根号i的左边是否有因子,这里也别忘记带等号<=,因为有25=5×5的情况if(i%num[j]==0){//如果能整除,则是因子return 0;}}return 1;//否则,没有因子,就是质数
}void gen_primes(max){ //寻找质数及数组处理函数num[0]=2; //数组预处理,第一个质数是2,注意1既不是质数也不是合数for(int i=3;i<=max;i+=2){ //质数除2以外都是奇数,所以可以i+=2if(isPrime(i)) //判断该数是否为质数num[++p]=i;//如果是,则扔进质数数组中}
}
int main() //主函数,程序的入口
{gen_primes(Max); //Max定义为了全局变量,仍作为参数放到函数中,是为了防止使用过程中不小心修改了全局变量for(int i=0;i<=p;i++){ //打印质数数组,因为p是先加后用,所以取值时别忘了带等号<=printf("%d\n",num[i]);}return 0;
}
总结:
1、质数(素数),是指在大于1的自然数(非负整数)中,除了1和它本身以外不再有其他因数的自然数。与质数相反的数是合数,1既不是质数也不是合数,除2以外的质数都是奇数
2、唯一分解定理:任何一个大于1的自然数N, 如果N不为质数,那么N可以唯一分解成有限个质数的乘积。例如:12=3×4=3×2×2;9=3×3。
3、L=m×n,则m≤根号L,n≥根号L,所以只需要看根号L左边的即可
C语言 输出100以内的质数相关推荐
- C语言-输出100以内的质数
质数指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数. #include<stdio.h> int main() {int i,k;for(i=2;i<=10 ...
- Linux质数合数的脚本,python输出100以内的质数与合数实例代码
python输出100以内的质数与合数实例代码 具体代码如下所述: __author__ = 'Yue Qingxuan' # -*- coding: utf-8 -*- #求质数 p=[2] for ...
- 20以内的素数编码C语言,用C语言 输出100以内的素数,
用C语言 输出100以内的素数, 用C语言 输出100以内的素数, 输出100以内的素数,谁能帮一下,我做了好久没做出来,也想了好久, 能带注释那更好了,我是新中新手,还有很多很多的不懂, 搜索更多相 ...
- python100以内自然数之和_python输出100以内的质数与合数实例代码
具体代码如下所述: __author__ = 'Yue Qingxuan' # -*- coding: utf-8 -*- #求质数 p=[2] for i in range(2,101): for ...
- python中求合数_python输出100以内的质数与合数实例代码
具体代码如下所述: __author__ = 'Yue Qingxuan' # -*- coding: utf-8 -*- #求质数 p=[2] for i in range(2,101): for ...
- python输出1到100之间的合数_python输出100以内的质数与合数实例代码
具体代码如下所述: __author__ = 'Yue Qingxuan' # -*- coding: utf-8 -*- #求质数 p=[2] for i in range(2,101): for ...
- Java输出100以内的质数(及其代码优化详程)
文章目录 Java输出100以内的质数 重点:<代码的优化> P1:currenttimemillis方法计算运行时间 p2:优化一(针对非质数) p3:Java 中 Math.sqrt( ...
- python100以内的质数_python输出100以内的质数与合数实例代码
具体代码如下所述: __author__ = 'Yue Qingxuan' # -*- coding: utf-8 -*- #求质数 p=[2] for i in range(2,101): for ...
- 输出100以内的质数 java
java输出100以内的质数 class Ab{public static void main(String[] args){boolean isFlag = true; //标识i是否能被j除尽,一 ...
- js输出100以内的质数_JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例...
这篇文章主要介绍了JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 斐波那契 ...
最新文章
- R语言包_lubridate
- java在src创建entity文件_java自动生成entity文件
- 硬核图解!断网了,还能ping通 127.0.0.1 吗?为什么?
- J - 青蛙的约会(扩展欧几里得)
- Packt发行的$ 5 Java编程书籍:精通Java 9,Java 9 High Performance
- PyQt5 环境搭建+配置+怎样运行生成的.py程序
- Oracle 并行执行SQL
- python运维脚本部署jdk_Jenkins 为Jenkins添加Windows Slave远程执行python项目脚本
- 零基础学启发式算法(1)-贪心算法(Greedy Algorithm)
- (三)添加HDRI环境贴图和顶点绘制技巧
- dd模式和iso模式_ISO的完整形式是什么?
- Docker 从入门到实战视频教程(15 个视频)
- 做个坚强的逆行者,献给终日奋斗的你我——《当幸福来敲门》
- NOIP2019数字游戏
- 区间对比_预算1015万元区间 国内在售街车综合实力对比
- Maxima函数的不完全列表
- 基于鲁棒-距离平衡和基于学习的人工蜂群的强大优化算法(Matlab代码实现)
- 服务器安装嵌入式系统,嵌入式设备连接云服务器
- onmouseover 事件
- 真心话大冒险小程序python实现