梁露 网站建设与实践软件开发基本流程
news/
2025/10/9 1:16:52/
文章来源:
梁露 网站建设与实践,软件开发基本流程,手机app开发环境搭建,凤台县美丽乡村建设网站训练项目#xff1a;使用函数求质数和。
定义一个函数IsPrime()#xff0c;据此判断一个数是否为质数
由用户输入一个整数#xff0c;求出比此数大的两个最小质数之和。
一、解决思路:
1.先在键盘上输入一个整数
2.求出比此数大的最小质数
3.再求出比此质数大的另一个…训练项目使用函数求质数和。
定义一个函数IsPrime()据此判断一个数是否为质数
由用户输入一个整数求出比此数大的两个最小质数之和。
一、解决思路:
1.先在键盘上输入一个整数
2.求出比此数大的最小质数
3.再求出比此质数大的另一个最小质数
4.设置计数变量等于2时退出求质数
5.求两质数和并输出
二、知识点
1.质数
质数也称素数是指除了1和该数本身不能被任何正整数整除的正整数。判断一个正整数m是否为质数只要判断m可否被2~根号m之中的任何一个正整数整除如果m不能被此范围中任何一个正整数整除m即为质数否则m为合数。
2.条件判断
判断一个数是否为质数C语言、Python等高级语言都有这类训练是综合运用变量、循环结构、分支语句、函数等知识的典型案例。各有不同但思路基本一致。
与其他高级编程语言一样变量与函数是重要概念只有多练习才能深刻体会。
3.函数
bash中定义函数可加function关键字也可不加函数命名要符合规则最低要求是见名知意不能用数字、a、b、c等单个字符不用中文(这是习惯实际上bash支持中文函数名)。
bash函数传参与Python、C语言不一样可以考虑标准输入传参或运行函数时位置传参而bash代码中用$1接收这个参数
三、源代码
下面是本案例的详细代码仅供参考。
代码中引用变量或条件判断写法很多目的是说明这些方法可行实际工作中最好选择编写一种格式不要随意变换格式。
#!/bin/bash ## bash编程_函数学习与应用
## 求质数和
## 先定义一个判断函数IsPrime()
IsPrime(){ m$1 i2 # 判断一个数一般从2开始检测求余数 while [ $i -le $m ] do flagTrue #定义flag变量表示查询的数是质数 ## 一般对于布尔型变量仅有正确/错误两个值可以用1/0表达也可以用True/False表达。 j2 num1$(bc sqrt($m)1) # 判断质数时到此数即可当录入数小时不明显录入数30明显速度更快 ## sqrt($m) 求变量$m的平方根 bc 是科学计算器 ## 当录入数比较小时num1可以用$m/2代替 while [ $j -le $num1 ] do if [ expr $i % $j -eq 0 ];then flagFalse break fi jexpr $j 1 done iexpr $i 1 done
} read -p 请录入一个正整数 num
k$num
sum0
cnt0 # 设置计数器后面仅需要两个质数需要在循环前设置计数器初始值
while true # 此处应用while循环而不是for循环主要是我们不明确有多少次循环
## 此处true代表多次循环无条件。也可以用:或任意一个数代替大多数人喜欢用while (1)
do ((k)) # 此处先设置自增1以保证标准输入是质数时仍要先循环后判断 IsPrime $k ## 此处用位置变量进行函数传参 if [ $flag True ];then let cnt1 let sum$k echo ${k}是质数 ## 此处打印一下可查看质数 fi if [ $cnt -eq 2 ];then break fi
done
echo 比 $num 大的两个最小素数之和为 $sum
四、效果 小结
bash中定义函数时是否用关键字function由编写者确定。函数传参与C语言、python语言不同定义函数时也有{}结构但内不能添加参数只能进行位置传参。
与C语言、python语言不同,只能先定义函数再使用。函数位置不能随意放置。
bash中的表达式有多种写法let cnt1与((cnt))功能相同。同样此表达式也可以写作
cntexpr $cnt 1
条件判断test 与[ ]功能相同。而[ ]与[[ ]]略有不同使用时多加注意。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/932110.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!