C语言判断一个数是否为素数的三种方法(详细)

这篇具有很好参考价值的文章主要介绍了C语言判断一个数是否为素数的三种方法(详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

         前言

         今天我们来使用C语言来实现判断一个数是否为素数,首先我们需要了解到素数的概念,素数就是只能被1和它本身整除的数。

        第一种方法

   

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
    int main()
{
	int i;int n;
	printf("请输入一个整数:>");
	//输入数字
	scanf("%d", &n);
	//判断是否为素数
	if (n <= 1)
	{
		printf("%d不是素数\n", n);
	}
	else 
	{
		int flag = 1;//设置flag= 1,假设n是素数
		for (i = 2;i <= n/2;i++)
		{
			if (n % i == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
			printf("%d是素数\n", n);
		else
			printf("%d不是素数\n", n);
	}
	
	return 0;
}

        这是第一种代码,我们来分析一下,首先创建变量i和n,这里我们i用于循环,n用来存放我们输入的数字。之后我们设置一个if语句来判断输入的数是否小于1,如果小于1的话直接输出不是素数。

        之后我们设置一个flag,这个flag的作用是假设n是素数,这里的flag是一个辅助变量,它用于追踪当前检查的数n,看它是否是一个素数。

        之后使用一个for循环来让n试除i,当n可以被i整除的时候,我们发现这个数n不是素数flag不成立,我们给flag赋值为0,之后跳出循环进行判断,进入else语句,输出n不是素数。

        这里要注意的一点是我们试除的时候,只需要除到n/2,如果我们一个数可以被一个n/2的数整除,那么我们就没有必要再去重复的试除它之后的数。

        第二种方法了,对程序进行优化

        

int main()
{
	int i;int n;
	printf("请输入一个整数:>");
	//输入数字
	scanf("%d", &n);
	//判断是否为素数
	if (n <= 1)
	{
		printf("%d不是素数\n", n);
	}
	else 
	{
		int flag = 1;//设置flag= 1,假设n是素数
		for (i = 2;i <= sqrt(n);i++)
		{
			if (n % i == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
			printf("%d是素数\n", n);
		else
			printf("%d不是素数\n", n);
	}
	
	return 0;
}

        在这个代码中,我们使用了给n开平方的方式来使我们用来试除的n值最简,一个数如果不能被它开平方之后得到的这个数之前的数整除的话,那么它就一定是素数了。

        简单举个例子,sqrt(17)如果开平方的话得到的数是4.1左右,如果我们试除2-4之间的数之后,发现都不可以被n整除,那么n就是素数。

        sqrt是数学函数,记得调用头文件<math.h>哦

        最后一种方法是使用函数调用的方式

        

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int infer_prime(int n)
{
	int i;
	if (n <= 1)
	{
		return 0;
	}
	else
	{
		for (i = 2;i <= sqrt(n);i++)
		{
			if (n % i == 0)
			{
				return 0;
			}

		}
		return 1;
	}
}
int main()
{
	//输入一个数
	int p = 0;
	printf("请输入一个数字");
	scanf("%d", &p);
	//通过函数判断是否为素数
	if (infer_prime(p))
		printf("%d这个数字是素数\n", p);
	else
		printf("%d这个数字不是素数\n", p);
	//输出是素数或者不是素数
	return 0;
}

        我们最后使用函数调用的方式来判断n是否是素数,我们设置一个函数,函数名为infer_prime(当然这个函数名也可以设置为其他,看自己设置函数名的习惯),这次在主函数中我们首先设置变量p存放我们的函数,这里我们使用if语句来判断函数是否为真,如果真(if语句判断为1)那么我们就判断p是一个素数,如果假(if语句判断为0),那么p就不是素数。

        我们进入函数,函数类型为整型,我们形参设为n,用来接受p的值,之后设置一个i用来试除n,之后就和我们之前一样了,使用一个if语句排除小于1的数对程序的影响,之后试除到n开平方,不一样的就是我们这里如果判断出n是素数的话,我们直接给让返回值为1(return 1),到我们主函数的if语句中,判断为真(if(1)),就可以直接输出n是素数。

        希望对大家有帮助,如果有任何疑惑可以私信博主或者留言评论区,看到会马上回复哦,程序也有不足之处,希望如果有兄弟发现问题可以积极指正,博主主打一个听劝!!文章来源地址https://www.toymoban.com/news/detail-857576.html

到了这里,关于C语言判断一个数是否为素数的三种方法(详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • C语言素数(质数)判断的三种方法

    本文介绍了判断素数的3种方法,从素数的概念分析,确定找到素数的几个必要条件,设计思路,并将代码进行优化。此外,还使用自定义函数的形式将同样的思路进行实现。 素数,就是仅能被自身和1整除的数字。 首先我们可以提取出判断素数的三个基本条件: 素数是整数

    2024年02月04日
    浏览(44)
  • 【C语言】判断一个数是否为素数

    目录 判断一个数是否为素数 方法1  方法2    2.1 2.2 进阶:输出区间长度内的素数 “ 素数和质数没有区别 ,素数又叫质数,质数是指在大于1的自然数中,除了1和它本身以外,不能被其他自然数整除的数。比1大但不是素数的数称为合数,1和0既非素数也非合数。” 所谓素数

    2024年02月04日
    浏览(73)
  • 【C语言】判断一个数是否为素数(素数求解的N种境界)

    这是一篇关于素数的介绍,以及介绍判断是否为素数的一篇博客,我会将方法一一列举出来方便大家理解和观看。 🍊 我们在C语言的学习中会遇到各种各样的数学问题,每次遇到这些数学问题时,我们一定要学习如何用代码的方法表示出来,加深理解,并且强化自己的能力,

    2024年02月06日
    浏览(67)
  • 【Python】判断素数的三种方法以及for-else语句的介绍

      输入一个数,如果是素数就输出\\\"Yes\\\",否则输出\\\"No\\\" 自定义函数 is_prime() ,首先排除1,然后再对该数之前的数进行枚举,当遇到能被当前的数整除时返回False,若没有数能将其整除意味着这个数是素数,返回True。然后对返回的结果进行判断从而输出\\\"Yes\\\"或\\\"No\\\" 当然,我们可以

    2024年02月04日
    浏览(38)
  • 判断一个数是否是素数(Java版)

    目录 素数的定义 求解素数 素数判定法1: 遍历从2到n-1的所有数字,判断是否有可以被n整除的数,如果没有,则为素数。 优化法2: 判定的范围改为[2 -,n/2]。当 in/2 时,则判定为素数。 优化法3: 在Java中判定素数的范围也可以到sqrt(n),(对n开平方)。对应的函数为:Math.sqrt(n

    2024年02月16日
    浏览(67)
  • python_输入任意一个数,判断是否是素数

    看了一下其他答案要不是格式不对run不出来,要不就是输入项验证不全,希望答案对大家有用。 

    2023年04月09日
    浏览(48)
  • 判断字符串是否为回文的三种常用编程语言实现

    引言:回文是一种具有镜像对称性的字符串,即它从左到右读和从右到左读是相同的。回文可以在文学、语言学、数学、计算机科学等领域中得到广泛应用。在计算机科学中,判断一个字符串是否为回文是一项基本的算法挑战。在本文中,我们将介绍三种常见的编程语言中用

    2024年02月03日
    浏览(51)
  • Python 判断列表里是否有重复元素的三种方法

    一、用 set 方法去重后与原列表长度比较 二、用 append 的方式把原列表中的元素添加到一个新列表,确保新列表里不存在重复的元素,然后比较两个列表 三、用 fromkeys 的方法创建一个字典,因为字典的键会自动去重,所以可以比较字典和原列表的长度,跟方法一很像

    2024年02月11日
    浏览(54)
  • [超详细]3种方法判断一个数是否为质数(Python)

    (发现好多博客对第三种进阶方法说的不明白,至少我是没完全看明白。后面结合自己的理解应该算是弄懂了,供大家参考,欢迎纠正。) 方法一:最暴力,最简单,也最耗时O(n) 思想:由 素数的定义:一个数t,除了1和它本身,若没有其他因数,那么就称其为素数。 因此循环

    2024年04月08日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包