输出100 - 200之间的素数C语言
输出100 - 200之间的素数
素数就是质数,即除了1和它本身不再有求它因数的自然数
那么这道题的思路就是用100到200之间的数去除以比这个数小的所有数(除了1和它本身),如果有余数说明它不是一个素数
看下面代码:
int main()
{int i = 0;int count = 0;// 外层循环用来获取100~200之间的所有数据,100肯定不是素数,因此i从101开始for(i=101; i<=200; i++){//判断i是否为素数:用[2, i)之间的每个数据去被i除,只要有一个可以被整除,则不是素数int j = 0;for(j=2; j<i; j++){if(i%j == 0){break;}}// 上述循环结束之后,如果j和i相等,说明[2, i)之间的所有数据都不能被i整除,则i为素数if(j==i){count++;//记录质数的个数printf("%d ", i);}}printf("\ncount = %d\n", count);return 0;
}
当然这个代码还可以优化
因为偶数不可能是质数,所以我们让 i 每次循环 +2
超过i一半的数据,i 一定不是它的倍数
所以代码如下:
int main()
{int i = 0;//初始值设为101,每次+=2,因为偶数一定不是素数for (i = 101; i < 200; i += 2){int j = 0;//大于i/2的数一定不能被i整除 for (j = 2; j <= i / 2; j++){if (i % j == 0){break;}}// 上述循环结束之后,如果j>(i/2),说明[2, i/2)之间的所有数据都不能被i整除,则i为素数if (j > i / 2){printf("%d ", i);}}return 0;
}
还有一个算法就是 i的因子 < sqrt(i)
这是什么意思呢?
首先 sqrt 是开平方的意思
所以我们只需要让因子小于 “36开平方” 就可以了
代码如下:
int main()
{int i = 0;int count = 0;//记录素数的个数for (i = 101; i <= 200; i += 2){//判断i是否为素数//2->i-1int j = 0;for (j = 2; j <= sqrt(i); j++){if (i % j == 0){break;}}//...if (j > sqrt(i)){count++;printf("%d ", i);}}printf("\ncount = %d\n", count);return 0;
}
这段代码的结果为
输出100 - 200之间的素数C语言相关推荐
- 【C语言练习】将100~200之间的素数输出
将100~200之间的素数输出 一.编程思路 1.首先,我们要意识到,找出某个区间内符合条件的数,就需要对这个区间内的所有数进行遍历,而最常用的遍历方法就是利用for循环: 2.其次,在确定了遍历区间 ...
- 打印100~200 之间的素数,输出乘法口诀表,判断1000年---2000年之间的闰年
1.打印100~200 之间的素数 #include <stdio.h> int main() { int n,i; for(i=100;i<=200;i=i++) { for(n= ...
- C语言基础课 编写程序之1.编写一个判断素数的函数,并利用该函数输出100~200的所有素数2.编写一个函数fun(),函数功能是:判断一个整数是否既是5又是7的整倍数,若是,输出yes,不是,输出n
1.编写一个判断素数的函数,并利用该函数输出100~200的所有素数 #include<stdio.h> #include<math.h> int fun(int n) {in ...
- 打印100~200之间的素数。
. 打印100~200之间的素数. #include <stdio.h> #include<stdlib.h>void main(){ int a,b; for(a=100;a ...
- 求解100~200之间的素数
求解100~200之间的素数目录 文章目录 求解100~200之间素数目录 前言 一.素数是什么? 二.求解素数的方法 1.常规方法 2.优化方法 3.另辟蹊径 总结 前言 对于很多人对求解素数存在一 ...
- 求出100~200之间的素数
求出100~200之间的素数的个数,并求出所有的素数. 分析:素数定义是只能被1和该数本身整除 package com.math.forth;/*** 求出100~200之间的素数的个数,并求出所有的 ...
- 打印100~200 之间的素数
编写思想:对100到200之间的数依次进行for循环判断,看其是否为素数.判断方法:对于一个自然数,除了1以外,不是素数就是合数.若该数字是素数,则不能被除了1和它自身以外的数整除:而一个数如果是合数 ...
- 用流程图、NS图、伪代码分别描述解决如下实际问题的算法。将100~200之间的素数输出。
正解: 伪代码: n=100 while n≤200 do i=2 while i≤√n if mod(n,i)=0 then i=n else i=i+1 end if end do if i &l ...
- 100~200之间的素数(及其四个优化方案)
要求素数,首先我们要知道什么是素数,在解题的时候,不要急着去寻找方法解题,而是要先了解它的根本,才可以在遇到类似题的时候轻松面对解决 质数(prime number)又称素数,有无限个.一个大于1的自 ...
最新文章
- shell中的for循环语句
- ssh开发实战之整合篇
- 两个等号(==)和三个等号(===)的区别
- R开发(part6)--pryr包
- 开源分布式中间件 DBLE 快速入门指南
- 饿了么超级会员,年卡低至108元!饿了么会员,点外卖超省钱!
- DRAM与SRAM的比较
- 采访前高级软件工程课程学员付浩同学,及Scrum总结阅读感想
- cleanlab(解决图像标记错误)
- 批处理html转excel,批量Excel转TXT工具(Batch Excel to Text Converter)v2020.12.1118官方免费版...
- 一根不均匀的绳子,全部烧完需要1个小时,问怎样烧能计时1个小时15分钟
- 024.RN项目android打包
- 手机dlna到linux,linux dlna服务器
- IOS – OpenGL ES 调节图像白平衡/色温 GPUImageWhiteBalanceFilter
- python笔记打卡
- 计算机组成原理中op,计算机组成原理课程习题答案秦磊华
- 百度乐居能否引领房地产市场新风向标?
- 《前端》慕课--分页导航(带页码的分页导航)
- Window截图方法
- 欧姆龙SysmacStudio 关于模块化编程的使用技巧---全局变量和数据类型