首页IT科技c语言素数判断程序200 300(一文解决如何使用 C 语言判断质数(素数)[ 附解析与源码 ])

c语言素数判断程序200 300(一文解决如何使用 C 语言判断质数(素数)[ 附解析与源码 ])

时间2025-08-05 01:46:30分类IT科技浏览5001
导读:前言 质数历来都是数学界的宠儿,是数学里神秘的谜团。...

前言

质数历来都是数学界的宠儿               ,是数学里神秘的谜团               。

质数又和 C 语言有着不解之缘                      ,本篇文章将讲解如何用 C 语言判断质数                      。

为了方便大家在读完此文章后使用文中程序        ,我会将判断质数的程序封装成函数        ,此函数的功能是:判断形参 _number 是否是质数                      ,若 _number 是质数               ,则返回 1;若不是质数        ,则返回 0        。

何为质数

质数又称素数        。一个大于 1 的自然数                       ,除了 1 和它自身外               ,不能被其他自然数整除的数叫做质数;否则称为合数(规定 1 既不是质数也不是合数)                      。

C 语言判断质数

在了解了质数的定义后,现在我们便可以着手编写程序啦               。

现在给定一个正整数 number                       ,要求我们判断此数是否为质数        。针对这一要求本篇采用两种判断方法                       ,分别是:暴力求解 与 巧用平方根                       。

暴力求解

通过质数的定义可以得到如何判断一个数是否为质数, 我们可以通过遍历从 2 到 number - 1 这个区间中的所有数               ,如果都不能被 number 整除                       ,则 number 是质数        ,否则 number 不是质数               。

具体代码如下:

/**************************************************************************** * 函数名: 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 < _number; i++) /* 遍历从 2 到 _number - 1 区间中的所有数 */ { if (_number % i == 0) { return 0; /* 若可以被整除        ,则不是质数        ,返回 0 */ } } return 1; /* 若执行完以上程序均未返回                      ,则是指数               ,返回 1 */ }

巧用平方根

使用暴力求解固然可以求出一个数是否为质数        ,但运算次数是最多的                       ,运行速度也是最慢的               ,我们还可以将程序进行优化,提升程序运行时的效率。

在一般领域                       ,对正整数 number                       ,如果用 2 到 $\sqrt{number}$ 之间的所有整数去除,均无法整除               ,则 number 为质数                       。那么就可以利用这一方法                       ,巧用平方根判断一个数是否为质数                       。

在 C 语言中求平方根可以使用 C 标准库        ,<math.h> 头文件中定义了各种数学函数               ,sqrt() 函数是平方根函数                      ,功能是计算一个非负实数的平方根        ,调用时程序要包含 <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 */ }

如何调用函数

对于如何使用 C 语言判断质数,共讲解了两种方法并分别将编写的程序封装成为函数                       ,现在我们来讲解一下如何在实际应用中调用它们               。

在这里                       ,我以巧用平方根为例进行讲解(暴力求解的调用方法与之相同),也特别推荐大家在以后的使用中优先选择巧用平方根这种方法               ,因为通过平方根进行判断是运算次数最少的                       ,可以极大的提高我们程序的效率                       。

样例代码中        ,我们输入一个整数               ,然后调用判断质数的函数                      ,若输入的数是质数则输出 Yes        ,否则输出 No        。

具体代码如下:

#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 N = 0; scanf("%d", &N); if (Judge_PrimeNumber(N) == 1) /* 调用判断质数的函数,判断输入的整数 N */ { printf("Yes\n"); /* 是质数,则输出 Yes */ } else { printf("No\n"); /* 否则输出 No */ } return 0; }

后记

至此                       ,我们讲解了关于质数的定义                       ,带领大家编写了 C 语言判断质数的程序代码,并将所写代码封装成为函数               ,同时为大家演示了如何调用函数来判断质数               。

相信看完本篇文章的你                       ,以后再遇到 C 语言判断质数的问题        ,可以解决的游刃有余                      。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
焦虑症病情反复正常吗(《焦虑症的自救》焦虑症反反复复?还在为恐惧和焦虑苦恼?快来领取焦虑症自愈宝典!)