c/c++语言开发共享C语言判断数是否为素数与素数输出

目录1.判断单个数是否为素数(多组输入)2.输入范围输出范围内的素数3.总结素数的概念:素数也叫质数,是一种只能被自己本身和1整除的数并且大于1,当然0与1不是素数。1.判断单个数是否为素数(多组输入

目录
  • 1.判断单个数是否为素数(多组输入)
  • 2.输入范围输出范围内的素数
  • 3.总结

素数的概念:素数也叫质数,是一种只能被自己本身和1整除的数并且大于1,当然0与1不是素数。

1.判断单个数是否为素数(多组输入)

我的思路是,首先输入一个数,利用素数的概念来判断是非为素数,是的话输出素数;否则不输出。

关于素数的判断首先我们吧输入的数当初被除数,我选择用一个for循环来实现,从2开始当除数,每轮加1,一直循环去除被除数,一直除到被除数减一那个数,要是期间能被一个数整除则跳出循环不为素数,要是一直没有被整除则输出这个素数。

  #include<stdio.h>  int main()  {  	int a=0, j;  	while (scanf_s("%d", &a) != eof)  	{  		int flag = 1;  		for (j = 2; j < a; j++)  		{  			if (a % j == 0)  			{  				flag = 0;  				break;  			}  		}		  		if (flag == 1 && a != 0 && a != 1)//0与1不是素数  			printf("%d为素数。n", a);  		else  		printf("%d不是素数。n", a);  	}  	return 0;  }

这里我选择引用一个局部变量flag来当作判断是否为素数的标志,刚刚开始赋值为1,假如被整除了就变为0,最后直接判断flag的值,1为素数;否则不是。

最后代码运行

C语言判断数是否为素数与素数输出

2.输入范围输出范围内的素数

这个算是上一个例子的高阶版,这个题的我们得解决两个问题:①把这个范围的数全都进行输出②判断输出的数是否为素数,是的话输出否则不输出。

关于问题一我选择用一个for循环来不断输出这个数进行比较,因为输入的是一个范围必定有最大值和最小值,我们可以以最小值为起始数开始循环输出,每次加1,直到加到最大值停止输出。

第二个问题就利用上面例子的思路就可以,把他包括到第一个for循环里面。

代码如下

  #include<stdio.h>//输入一个范围,求嘞个范围里面的素数  int main()  {  	int m, n;  	scanf_s("%d %d", &m, &n);//输入一个范围,m为最小值,n为最大值  	for (int i = m; i < n + 1; i++)  	{  		int flag = 1;  		for (int k = 2; k < i ; k++)  		{  			if (i % k == 0)  			{  				flag = 0;  				break;  			}  		}  		if (flag == 1 && i != 0 && i != 1)  			printf("%d ", i);     	}  	return 0;  }

最后代码运行

C语言判断数是否为素数与素数输出

 成功运行

3.总结

对于这个代码我感觉唯一的难点在于对于break的理解,还有素数的概念,还有对于0与1不是素数的判断上。

关于0与1不是素数我运用了相对暴力的做法,我选择在最后flag的判断里面加入对输入的值的判断,只有他不等于0或者1时才为素数否则不是。

到此这篇关于c语言判断数是否为素数与素数输出的文章就介绍到这了,更多相关c语言 素数内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多c/c++开发分享C语言判断数是否为素数与素数输出,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/995920.html

(0)
上一篇 2021年12月27日
下一篇 2021年12月27日

精彩推荐