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

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

时间2025-05-02 13:34:23分类IT科技浏览3764
导读:前言 质数历来都是数学界的宠儿,是数学里神秘的谜团。...

前言

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

质数又和 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
spring基于注解注入(Spring IOC官方文档学习笔记(九)之基于注解的容器配置) vue计算属性和侦听属性的区别(Vue基础语法之计算属性(computed)、侦听器(watch)、过滤器(filters)详解)