linux使用for循环计算质数和,怎么样用linux命令求1到N之间质数的和。(用for循环或者until循环或者while循环各写一种方法,最少写出2种方法)?...

2010-11-17 回答

#!/bin/bashfunction fu(){f=$1i=2while (($i

j=2sum=0if [ -n "$(echo $1 | grep '^[1-9][0-9]*$')" ];thenN=$1echo -n "1到$1的质数有:"while (($j<=$N));do fu $jif (($?==0));thenecho -n "$j,"sum=$(($sum+$j))j=$(($j+1))elsej=$(($j+1))fidoneecho -e "\n1到$1的所有的质数的和是$sum"elseecho "必须要有一个正整数做参数"exit 0fi

包括了求质数和求和的功能,,自己把while改成untile的形式就好了,,,

可能显示不出换行所以不要复制粘贴。。

追问:

问题是一定for循环一定要做,while和untile其中选择一个,麻烦你再做一个for循环的给我看一下,拜托了。

追答:

for的话只能是遍历固定列表的,,for i in (1,2,3,4,5,6);do       使用函数来判断$i是否为素数done

具体的你按语法改吧,,,你是学的什么专业啊,,看着像是作业题,,不过貌似没有什么专业有Linux的课程啊,,任选课??

追问:

不好意思,我是初学者,不太懂。明天就要测试了,给了这个题目。我都不知道怎么做。拜托你列出来可以么?谢谢你了。

追答:

==、我也是初学者,接触linux才半年而已,,,你学了多久了??怎么还有测试呢,,是不是考证的啊。。

追问:

不是考证,考证怎么会知道题目。我今天开学刚学,老师说测试一下。我学的linux。C语言我不太懂,出了这题所以我就不知道了。

追答:

你们还真奇怪啊,竟然还学Linux,,,,那个for的还是需要用while来配合的,,先用一个while把1到N个数放到数组里面i=0         while (($j<=$N));do                 array[$i]=$j                 j=$(($j+1))                 i=$(($i+1))         done

然后再用for来取数组的值判断,,,,for var in ${array[@]};do                 fu $var                 if (($?==0));then                         echo -n "$var,"                         sum=$(($sum+$var))                 fi         done

你大几啊,,怎么可能刚学就来测试的呢,,,太不合常理了。。

追问:

大2。。学了一个多月吧,shell脚本还是刚接触的,之前都讲命令。我实在对c语言程序不怎么感冒。你写成那个我看不明白,小弟不才啊。能帮忙搞成正规一点吗?最好换行都搞清楚。谢谢你啦!

追答:

while (($j<=$N));do

array[$i]=$j

j=$(($j+1))

i=$(($i+1))

done

for var in ${array[@]};do

fu $var

if (($?==0));then

echo -n "$var,"

sum=$(($sum+$var))

fi

done

你还是自己看书学学语法吧,,

追问:

是啊 ,只怪当初没学好C语言。连PHP也要用到。我头晕,一定要去好好学一下。那个for循环的能帮我整理一下吗? 最后一次了。谢谢你啦大哥!

追答:

for就是那样用的啊,,for var in list;do

done这样,,list是一个固定的列表,var是list中的元素,,这里${array[@]}实际上就是取数组array的值并组成一个列表,,@和*也是bash里面很特别的两个位置参数。。。

追问:

我去琢磨琢磨  谢谢你了、麻烦了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值