每周挑战198
#python #perl #theweeklychallenge

两个相对直接的任务开始新的一年。

abioqian0,My solutions

任务1:最大差距

任务

您获得了整数列表,@list

编写一个脚本以在排序列表中找到总和,其中2个连续的元素具有最大差距。如果列表包含少于2个元素,则返回0。

我的解决方案

对于此任务,我定义了两个变量。 gap值记录了到目前为止两个数字之间最大的差距,而count值记录了差距的出现数量。

我要做的第一件事是(数值)对列表进行排序。然后,我从0到列表的大小减去两个。对于每次迭代,我将该位置值的值与下一个位置的位置进行比较。如果差距更大,我将gap设置为差,并将count重置为1。如果差异与当前差距相同,则我将1增加到count

最后,我显示了count的值。

例子

$ ./ch-1.py 2 5 8 1
2

$ ./ch-1.py 3
0

任务2:素数

任务

您得到了一个整数$n > 0

写一个脚本以打印小于$n的素数。

我的解决方案

是时候拉出我可信赖的is_prime方法了。这是挑战177的任务2中的最后一次使用。i迭代从1到n-1,如果这个数字是素数,则在count中添加了一个。然后我显示count的值。

例子

$ ./ch-2.py 10
4

$ ./ch-2.py 15
6

$ ./ch-2.py 1
0

$ ./ch-2.py 25
9