C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)

这篇具有很好参考价值的文章主要介绍了C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目:

使用 试除法 打印100~200之间素数

              

素数(质数)一个数只能被写成一和本身的积

如:7只能写成1*7,那就是素数(质数)了。

                    

 =========================================================================

                       

思路一:使用试除法

总体思路:

(一). 使用外循环生成 100~200 之间的数。

                     

(二). 设置内循环生成 2 ~ i-1 的数。

                  

(三). 在内循环中设置 if条件判断语句

                 

判断 i 是否为素数

2 到 i-1 之间的数字去试除 i,如果能整除 i 不是素数

2 到 i-1 之间的数字都不能整除 i ,则 i 是素数

                   

(四). 判断完后,根据变量flag的值,判断是不是素数打印出来

                


                 

第一步:

(1). 使用外循环生成 100~200 之间的素数。

              

(2). 设置一个 变量flag ,flag 为 1 i 是素数,flag 为 0i 不是素数

                     

实现代码:

#include <stdio.h>
int main()
{
	int i = 0; //循环变量
	for (i = 100; i <= 200; i++) //生成 100~200 之间的素数
	{
		int flag = 1; //设置变量flag

	}


	return 0;
}

实现图片:

C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)

                 


                 

第二步:

设置内循环生成 2 ~ i-1 的数。

                     

实现代码:

#include <stdio.h>
int main()
{
	int i = 0; //外循环变量
	for (i = 100; i <= 200; i++) //生成 100~200 之间的素数
	{
		int flag = 1; //设置变量flag

		int j = 0; //内循环变量
		for (j = 2; j <= i - 1; j++) //设置内循环:生成 2~i-1 的数
		{

		}
	}


	return 0;
}

实现图片:

C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)

                 


                 

第三步:

(1). 在内循环中设置 if条件判断语句

                   

(2). 判断 i 是否为素数

2 到 i-1 之间的数字去试除 i,如果能整除 i 不是素数

2 到 i-1 之间的数字都不能整除 i ,则 i 是素数

                     

实现代码:

#include <stdio.h>
int main()
{
	int i = 0; //外循环变量
	for (i = 100; i <= 200; i++) //生成 100~200 之间的素数
	{
		int flag = 1; //设置变量flag

		int j = 0; //内循环变量
		for (j = 2; j <= i - 1; j++) //设置内循环:生成 2~i-1 的数
		{

			if (i % j == 0) //在内循环中设置 if条件判断语句,判断i是否为素数
			//用 i 模上一个 j,看 j 能不能整除 i ,有余数则表示不能整除
			{
				flag = 0; //flag == 0,则i不是素数
				break;
				//只要有一个 j 把 i 整除了,说明 i 已经不是素数了,
				//所以不用再继续循环了,使用break跳出循环。
			}

		}


	}


	return 0;
}

实现图片:

C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)

                 


                 

第四步:

判断完后,根据变量flag的值,判断 i 是不是素数打印出来

                     

实现代码:

#include <stdio.h>
int main()
{
	int i = 0; //外循环变量
	for (i = 100; i <= 200; i++) //生成 100~200 之间的素数
	{
		int flag = 1; //设置变量flag

		int j = 0; //内循环变量
		for (j = 2; j <= i - 1; j++) //设置内循环:生成 2~i-1 的数
		{

			if (i % j == 0) //在内循环中设置 if条件判断语句,判断i是否为素数
			//用 i 模上一个 j,看 j 能不能整除 i ,有余数则表示不能整除
			{
				flag = 0; //flag == 0,则i不是素数
				break;
				//只要有一个 j 把 i 整除了,说明 i 已经不是素数了,
				//所以不用再继续循环了,使用break跳出循环。
			}

		}

		if (flag == 1) //循环判断完后,根据变量的值,判断i是不是素数,是则打印
		{
			printf("%d ", i);
		}
	}


	return 0;
}

实现图片:

C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)

                    

思路一:最终代码和实现效果

最终代码:

#include <stdio.h>
int main()
{
	int i = 0; //外循环变量
	for (i = 100; i <= 200; i++) //生成 100~200 之间的素数
	{
		int flag = 1; //设置变量flag

		int j = 0; //内循环变量
		for (j = 2; j <= i - 1; j++) //设置内循环:生成 2~i-1 的数
		{

			if (i % j == 0) //在内循环中设置 if条件判断语句,判断i是否为素数
			//用 i 模上一个 j,看 j 能不能整除 i ,有余数则表示不能整除
			{
				flag = 0; //flag == 0,则i不是素数
				break;
				//只要有一个 j 把 i 整除了,说明 i 已经不是素数了,
				//所以不用再继续循环了,使用break跳出循环。
			}

		}

		if (flag == 1) //循环判断完后,根据变量的值,判断i是不是素数,是则打印
		{
			printf("%d ", i);
		}
	}


	return 0;
}

实现效果:

C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)

总结:

(1). 锻炼对外循环内循环的使用,对内外循环变量的调用。

            

(2). 试除法:利用 %看余数情况灵活运用

                    

 =========================================================================

                       

思路二:

总体思路:

因为偶数除了 2 都不是素数,且题目范围中没有 2

所以可以只生成 100~200 之间的奇数,可以排除一半的数字

效率提升一倍

                      


                     

第一步:

只需要在思路一的基础上

改变外循环初始化部分 调整部分 即可,

使外循环生成 100~200 之间奇数

                     

实现代码:

#include <stdio.h>
int main()
{
	int i = 0; //外循环变量
	for (i = 101; i <= 200; i+=2) //生成 100~200 之间的奇数
	{
		int flag = 1; //设置变量flag

		int j = 0; //内循环变量
		for (j = 2; j <= i - 1; j++) //设置内循环:生成 2~i-1 的数
		{

			if (i % j == 0) //在内循环中设置 if条件判断语句,判断i是否为素数
				//用 i 模上一个 j,看 j 能不能整除 i ,有余数则表示不能整除
			{
				flag = 0; //flag == 0,则i不是素数
				break;
				//只要有一个 j 把 i 整除了,说明 i 已经不是素数了,
				//所以不用再继续循环了,使用break跳出循环。
			}

		}

		if (flag == 1) //循环判断完后,根据变量的值,判断i是不是素数,是则打印
		{
			printf("%d ", i);
		}
	}


	return 0;
}

实现图片:

C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)

                    

思路二:最终代码和实现效果

最终代码:

#include <stdio.h>
int main()
{
	int i = 0; //外循环变量
	for (i = 101; i <= 200; i+=2) //生成 100~200 之间的奇数
	{
		int flag = 1; //设置变量flag

		int j = 0; //内循环变量
		for (j = 2; j <= i - 1; j++) //设置内循环:生成 2~i-1 的数
		{

			if (i % j == 0) //在内循环中设置 if条件判断语句,判断i是否为素数
				//用 i 模上一个 j,看 j 能不能整除 i ,有余数则表示不能整除
			{
				flag = 0; //flag == 0,则i不是素数
				break;
				//只要有一个 j 把 i 整除了,说明 i 已经不是素数了,
				//所以不用再继续循环了,使用break跳出循环。
			}

		}

		if (flag == 1) //循环判断完后,根据变量的值,判断i是不是素数,是则打印
		{
			printf("%d ", i);
		}
	}


	return 0;
}

实现效果:

C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)

                     

 =========================================================================

                       

思路三:

总体思路:

一个数:k

如果有 k = m * n

那么一定有 m 或 n 小于 根号k

那么可以把之前的 2 ~ i-1

换成 sqrt(i) ,即根号 i

进一步提高效率

                   


                     

第一步:

只需要在思路二的基础上

改变内循环判断条件部分 即可,

使内循环执行次数减少

                     

实现代码:

#include <stdio.h>
#include <math.h>
int main()
{
	int i = 0; //外循环变量
	for (i = 101; i <= 200; i += 2) //生成 100~200 之间的奇数
	{
		int flag = 1; //设置变量flag

		int j = 0; //内循环变量
		for (j = 2; j <= sqrt(i); j++) //设置内循环:生成 2~i-1 的数
		{

			if (i % j == 0) //在内循环中设置 if条件判断语句,判断i是否为素数
				//用 i 模上一个 j,看 j 能不能整除 i ,有余数则表示不能整除
			{
				flag = 0; //flag == 0,则i不是素数
				break;
				//只要有一个 j 把 i 整除了,说明 i 已经不是素数了,
				//所以不用再继续循环了,使用break跳出循环。
			}

		}

		if (flag == 1) //循环判断完后,根据变量的值,判断i是不是素数,是则打印
		{
			printf("%d ", i);
		}
	}


	return 0;
}

实现图片:

C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)

                    

思路三:最终代码和实现效果

最终代码:

#include <stdio.h>
#include <math.h>
int main()
{
	int i = 0; //外循环变量
	for (i = 101; i <= 200; i += 2) //生成 100~200 之间的奇数
	{
		int flag = 1; //设置变量flag

		int j = 0; //内循环变量
		for (j = 2; j <= sqrt(i); j++) //设置内循环:生成 2~i-1 的数
		{

			if (i % j == 0) //在内循环中设置 if条件判断语句,判断i是否为素数
				//用 i 模上一个 j,看 j 能不能整除 i ,有余数则表示不能整除
			{
				flag = 0; //flag == 0,则i不是素数
				break;
				//只要有一个 j 把 i 整除了,说明 i 已经不是素数了,
				//所以不用再继续循环了,使用break跳出循环。
			}

		}

		if (flag == 1) //循环判断完后,根据变量的值,判断i是不是素数,是则打印
		{
			printf("%d ", i);
		}
	}


	return 0;
}

实现效果:

C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)文章来源地址https://www.toymoban.com/news/detail-478361.html

到了这里,关于C语言:写一个代码,使用 试除法 打印100~200之间的素数(质数)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言200行代码实现简易三子棋

    三子棋应该是是我们最早接触到的棋类游戏,用C语言实现三子棋对初学者来说是一种不错的锻炼 编写三子棋只需要用到数组、函数和生成随机数的知识,所以比较适合成为编程学习者编写的第一个小游戏。 第一部分是源码复制就可以使用,每一个自定义函数在第二部分 设计

    2024年02月04日
    浏览(28)
  • 【f1c200s/f1c100s】mangopi自制linux开发板驱动适配进度(PCB、代码开源)

    目前自制的mangopi设备驱动适配已完成部分包含: 基于扫描的gpio-keys子系统适配 LED子系统适配 RGB接口LCD显示屏适配 ft5406触摸屏适配 博通RTL8188EUS无线网卡适配 PWM驱动适配 显示屏背光适配 以下这几项在下载到荔枝派源码时已经适配好了: SPI FLASH驱动 USB驱动 串口驱动 mangopi内

    2024年02月03日
    浏览(71)
  • ChatGPT教我用200行代码写一个简版Vue框架 - OpenTiny

    最近,我正在准备一份关于 Vue 基础的学习材料。期间我突发奇想:能否利用现在热门的 ChatGPT 帮我创建学习内容?其实 Vue 本身不难学,特别是基础用法,但是,如果你想深入掌握 Vue,就要通过阅读 Vue 的源码来了解其原理。然而,不是每个人都有足够的时间和耐心阅读 V

    2024年02月08日
    浏览(29)
  • 免费开源的高精度OCR文本提取,支持 100 多种语言、自动文本定位和脚本检测,几行代码即可实现离线使用(附源码)

    免费开源的高精度OCR文本提取,支持 100 多种语言、自动文本定位和脚本检测,几行代码即可实现离线使用(附源码)。 要从图像、照片中提取文本吗?是否刚刚拍了讲义的照片并想将其转换为文本?那么您将需要一个可以通过 OCR(光学字符识别)识别文本的应用程序。 图

    2024年02月01日
    浏览(100)
  • C语言循环打印空心正方形代码实现

    该程序实现了一个循环打印空心正方形的功能。用户输入正方形的边长,然后程序使用嵌套循环逐行逐列打印正方形的图案。 注释已经对代码进行了详细解释,包括输入边长、边长验证、外层循环控制行、内层循环控制列、判断边界位置并打印相应的字符。 在边界位置,打

    2024年02月08日
    浏览(64)
  • 用C语言写一个100以内的素数的循环

    写出100以内的素数,首先确定思路,确定框架和可以用到的函数, 素数的特征就是除了1以外不能被被别的数整除。所以这个循环函数就用到for循环从2到100(因为1不是素数),在for循环内部判断这个数是否能被除了1之外的数整除,如果被整除则不为素数,接着下一个数继续

    2024年02月11日
    浏览(29)
  • golang学习笔记——面试题 使用 3 个协程顺序打印 cat、dog、fish 各 100 次

    编程题:3个函数分别打印cat、dog、fish,要求每个函数都要起一个goroutine,按照cat、dog、fish顺序打印在屏幕上100次。 这个代码只用了一个函数,面试时你可以换成三个名字不一样的函数。 思考,可否换成无缓冲区的 channel 不可以,会报 fatal error: all goroutines are asleep - deadloc

    2024年02月21日
    浏览(30)
  • 100行Python代码,做一个打地鼠小游戏~

    最近在学习使用 Python 来完成一些小游戏,使用到的有 Pygame 和 PyQt5 等,根据网上前人的代码,整理了一个打地鼠的小游戏,今天也分享给大家,一起学习! 游戏画面 首先先进行游戏画面排版, 对于 PyQt5 来说,需要创建一个全局的 Application 对象,其参数是命令行参数列表,

    2024年02月03日
    浏览(35)
  • 解析CSS中的new Color(200, 200, 200, 100) 参数用法及应用实例

            在前端开发中,颜色是一个至关重要的视觉元素,而在JavaScript和Web开发中创建和操作颜色时,我们经常需要用到 Color 对象。例如, new Color(200, 200, 200, 100) 就是一种表示颜色的方式,它来源于HTML5的Canvas API或者一些JavaScript库如jQuery UI等。这个构造函数接收四个参

    2024年04月22日
    浏览(26)
  • 【华为OD】C卷真题 200分:矩阵匹配 第K大的数字的最小值 java语言实现 【思路+代码】

    C语言代码实现: 【华为OD】C卷真题 200分:矩阵匹配 第K大的数字的最小值C语言实现 【思路+代码】-CSDN博客 C++代码实现: 【华为OD】C卷真题 200分:矩阵匹配 第K大的数字的最小值C/C++语言实现 【思路+代码】-CSDN博客 从一个N*M(N=M)的矩阵中选出N个数,任意两个数字不能在同

    2024年01月19日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包