C 语言输出100至200之间的质数(素数)
题目描述
运行 C 程序,输出 100 至 200 之间的质数。
输入描述
无
输出描述
输出 100 至 200 之间的质数,每行输出一个质数,每个质数前面需要带有序号。
输出样例

解题思路
在《一文解决如何使用 C 语言判断质数(素数)》一文中,我详细讲解了质数以及如何使用 C 语言判断质数,本篇文章将引用此文中判断质数的函数。我共分享了两种判断方法,分别是暴力求解和巧用平方根,出于对程序执行效率的考虑,在这里我以巧用平方根为例进行讲解。
方案一
- 首先我们将巧用平方根判断质数的函数复制到程序中。
- 然后利用
for循环遍历 100 至 200 之间的数,逐一判断哪个是质数。 - 找出质数后,将存储质数个数的变量自加 1,并将此变量和该质数输出。
具体代码如下:
#include <stdio.h>
#include <math.h> /* 包含 <math.h> */
/****************************************************************************
* 函数名: Judge_PrimeNumber
* 功能描述:判断一个数是否为质数
* 输入参数:
* _number:需要判断的数
* 返回值:
* 1:是质数
* 0:不是质数
* 外部参数:无
* 注意事项:无
*
* 作者: 梁国庆
* 日期: 2021-12-11
* 修改记录:
****************************************************************************/
int Judge_PrimeNumber(int _number)
{
int i = 0;
if (_number < 2)
{
return 0; /* 需要判断的数小于 2,则不是质数,返回 0 */
}
for (i = 2; i <= sqrt(_number); i++) /* 遍历从 2 到 √_number 区间中的所有数 */
{
if (_number % i == 0)
{
return 0; /* 若可以被整除,则不是质数,返回 0 */
}
}
return 1; /* 若执行完以上程序均未返回,则是指数,返回 1 */
}
int main()
{
int i = 0, num = 0;
for (i = 100; i <= 200; i++) /* 遍历 100 至 200 之间的数 */
{
if (Judge_PrimeNumber(i) == 1) /* 调用判断质数的函数,判断输入的整数 i */
{
num++;
printf("%d.\t", num); /* 输出当前质数的个数 */
printf("%d\n", i); /* 输出质数 */
}
}
return 0;
}
方案二
本方案是对方案一的优化处理。
在 100 至 200 之间的所有偶数都不是质数,所以可以将其去除,直接对奇数进行判断,对于方案一来说可以让程序的运行时间减少一半,运行效率大幅度提高。
具体代码如下:
#include <stdio.h>
#include <math.h> /* 包含 <math.h> */
/****************************************************************************
* 函数名: Judge_PrimeNumber
* 功能描述:判断一个数是否为质数
* 输入参数:
* _number:需要判断的数
* 返回值:
* 1:是质数
* 0:不是质数
* 外部参数:无
* 注意事项:无
*
* 作者: 梁国庆
* 日期: 2021-12-11
* 修改记录:
****************************************************************************/
int Judge_PrimeNumber(int _number)
{
int i = 0;
if (_number < 2)
{
return 0; /* 需要判断的数小于 2,则不是质数,返回 0 */
}
for (i = 2; i <= sqrt(_number); i++) /* 遍历从 2 到 √_number 区间中的所有数 */
{
if (_number % i == 0)
{
return 0; /* 若可以被整除,则不是质数,返回 0 */
}
}
return 1; /* 若执行完以上程序均未返回,则是指数,返回 1 */
}
int main()
{
int i = 0, num = 0;
for (i = 101; i <= 200; i += 2) /* 遍历 101 至 200 之间的数 */
{
if (Judge_PrimeNumber(i) == 1) /* 调用判断质数的函数,判断输入的整数 i */
{
num++;
printf("%d.\t", num); /* 输出当前质数的个数 */
printf("%d\n", i); /* 输出质数 */
}
}
return 0;
}
C 语言输出100至200之间的质数(素数)的更多相关文章
- Problem B: 调用函数,输出100到200之间的所有素数
#include <stdio.h> int isPrime(unsigned int n)//定义素数函数 { int i; || n == ) ; ; i * i <= n; i ...
- C语言打印100到200之间的素数
用C语言打印素数,我们首先要了素数的相关定义:只有1和它本身两个因数的自然数,也就是说除了1和它本身外,不能被其他自然数整除的数就称为素数. 例如:101只能被1 和101 整除:103只能被1 和1 ...
- 输出2到n之间的全部素数
本题要求输出2到n之间的全部素数,每行输出10个.素数就是只能被1和自身整除的正整数.注意:1不是素数,2是素数. 输入格式: 输入在一行中给出一个长整型范围内的整数. 输出格式: 输出素数,每个数占 ...
- c - 输出 101 至 200之间的素数.
#include <stdio.h> #include <math.h> //判断 101-200 之间有多少个素数,并输出所有素数. int main(void) { , e ...
- python_输出100:200内的素数
sushu=[] for i in range(100,201): for j in range(2,i): if i%j==0: break if i==j+1: sushu.append(i) p ...
- 编写图形界面下的Java Swing程序,接受用户输入的两个数据为上下限,然后输出上、下限之间的所有素数。(结果部分每行显示10个数据)
这个代码我整体写的比较简单,读者可以简单参考一下,对人家题目要求略微修改了一下,多加了一个“置空”按钮.下图为我设计的界面 运行程序后的截图请看我后面的截图: package com.wangshil ...
- java中请给出例子程序:找出n到m之间的质数。
9.1 找出100到200之间的质数. public class Test { public static void main(String[] args){ for (in ...
- 黑马程序员——经典C语言程序设计100例
1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘 10.打印楼梯 ...
- C语言经典100例(1-50)
[程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去掉不满足条件的排列. main ...
- 代码实现:判断101-200之间有多少个素数(质数),并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
package com.loaderman.Coding; /* 判断101-200之间有多少个素数(质数),并输出所有素数. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能 ...
随机推荐
- XAF新手入门 - 模块(Module)
模块概述 谈到模块大家应该都不会感到陌生,不管是前端还是后端都有模块的概念,XAF中的模块概念与大多数框架中的模块概念是相通的.XAF模块首先是一个.NET类库,同时它还包含一个继承自ModuleBa ...
- BootStrap--selectpicker的使用
bootstrap-select,selectpicker 用法详细:通过官方文档翻译 用过selectpicker的都说好~但是网上中文的教程又找不到比较完整的用法,于是去官网看了下 顺便弄过来 ...
- .NET Conf 2022 – 11 月 8 日至 10 日
.NET Conf 2022 下周就正式开启了,时间是美国时间的 11月8日至10日..NET Conf 2022是一个免费的,为期三天的, 虚拟开发人员活动提供多种实时会话,其中包括来自社区和 .N ...
- MQTT+esp32+nodered+springboot 智能家居项目 -- 项目准备
1.后台系环境:idea jdk8.0以上 maven tomcat spring boot 2.前端环境 nodejs nodered 3.硬件环境: audrion esp32 ...
- javaWEB中的四种域对象
javaWEB中的四种域对象 (1)ServletContext ServletContext是最大的Web域对象,在整个工程内有效,可以存储一些需要全局部署的配置文件,也可以存储其他信息,不过因为它 ...
- Python基础之函数:5、内置函数、迭代器对象、异常的捕获和处理
目录 一.重要内置函数 1.zip() 2.filter() 3.sorted() 二.常见内置函数 1. abs() 2.all.any() 3.bin.oct.hex.int() 4.bytes( ...
- Python基础部分:4、 python语法之注释
目录 一.python语法之注释 1.什么是注释 2.如何编写注释 二.PEP8规范 一.python语法之注释 1.什么是注释 注释用来向用户提示或解释某些代码的作用和功能,它可以出现在代码中的任何 ...
- 用Nodejs 实现一个简单的 Redis客户端
目录 0. 写在前面 1. 背景映入 2. 数据库选择 3. Nodejs TCP连接 3. 代码编写 4. 实验 5. wireshark 抓包分析 6. 杂与代码 0. 写在前面 大家如果有去看过 ...
- python 的time、datetime模块
python 时间模块 import datetime res = datetime.datetime.now() print(res) # 2022-08-07 16:47:07.120459 ...
- 嵌入式-C语言基础:函数指针
定义函数地址:如果在程序中定义了一个函数,那么在编译的时候,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址(也叫入口地址)称为这个函数的地址. 和数组一样,数组名代表地址,而函数名表示函数 ...