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

 更新时间:2021年12月27日 08:35:37   作者:小夏跑不死  
大家好,本篇文章主要讲的是C语言判断数是否为素数与素数输出,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览

素数的概念:素数也叫质数,是一种只能被自己本身和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为素数;否则不是。

最后代码运行

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;
}

最后代码运行

 成功运行

3.总结

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

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

到此这篇关于C语言判断数是否为素数与素数输出的文章就介绍到这了,更多相关C语言 素数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入解析C++中派生类的构造函数

    深入解析C++中派生类的构造函数

    这篇文章主要介绍了深入解析C++中派生类的构造函数,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • 算法详解之分支限界法的具体实现

    算法详解之分支限界法的具体实现

    这篇文章主要介绍了算法详解之分支限界法的具体实现,需要的朋友可以参考下
    2014-02-02
  • C语言程序设计第五版谭浩强课后答案(第二章答案)

    C语言程序设计第五版谭浩强课后答案(第二章答案)

    这篇文章主要介绍了C语言程序设计第五版谭浩强课后答案(第二章答案),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-04-04
  • C++插入排序算法实例

    C++插入排序算法实例

    这篇文章主要介绍了C++插入排序算法实例,本文先是讲解了什么插入排序,然后给出了C++代码实例,需要的朋友可以参考下
    2014-10-10
  • 基于SVN源码服务器搭建(详细教程分析)

    基于SVN源码服务器搭建(详细教程分析)

    本篇文章是对SVN源码服务器搭建进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • C语言学习之指针的使用详解

    C语言学习之指针的使用详解

    想突破C语言的学习,对指针的掌握是非常重要的,本文为大家总结了C语言中指针的相关知识点,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2022-10-10
  • C语言数据结构中定位函数Index的使用方法

    C语言数据结构中定位函数Index的使用方法

    这篇文章主要介绍了C语言数据结构中定位函数Index的使用方法的相关资料,希望通过本文能帮助到大家,让大家理解这部分内容,需要的朋友可以参考下
    2017-10-10
  • 使用Qt实现文本文件的读写操作

    使用Qt实现文本文件的读写操作

    在现代应用程序开发中,文件操作是一个不可或缺的任务,无论是读取配置文件、处理用户输入,还是保存日志信息,文件的读取和写入操作都非常重要,本文我们将展示如何通过一个简单的图形用户界面(GUI),利用QFile、QTextStream和QFileDialog类来高效地进行文件操作
    2024-06-06
  • C++单链表实现大数加法

    C++单链表实现大数加法

    这篇文章主要为大家详细介绍了C++单链表实现大数加法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • C++20中的std::span详解

    C++20中的std::span详解

    span就是一个连续对象存储的观察者,类似std::string_view是string的观察者,这篇文章主要介绍了C++20 std::span,需要的朋友可以参考下
    2023-03-03

最新评论