在Linux系统中,将数组中的质数放到前面,可以采用以下 :
1:利用Bash内置命令
Bash内置命令中的“IFS”变量可以将字符串分割成数组。我们可以利用这个特性,将数组中的质数筛选出来,并重新组合成一个新的数组。
!/bin/bash将数组中的质数放到前面
创建一个数组
nums=(1 2 3 4 5 6 7 8 9 10)
遍历数组中的每个元素
for num in "${nums[@]}"; do
检查是否为质数
is_prime=1
for i in $(seq 2 $(expr $num / 2)); do
if [ $((num % i)) -eq 0 ]; then
is_prime=0
break
fi
done
如果是质数,则添加到质数数组中
if [ $is_prime -eq 1 ]; then
prime_nums+=($num)
fi
done
将质数数组追加到原数组前面
nums=("${prime_nums[@]}" "${nums[@]}")
输出结果
echo "${nums[@]}"
2:利用Python
Python提供了丰富的列表操作功能,我们可以利用这些功能来实现将数组中的质数放到前面。具体代码如下:
!/usr/bin/python将数组中的质数放到前面
创建一个列表
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
遍历列表中的每个元素
for num in nums:
检查是否为质数
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
如果是质数,则将其移动到列表的开头
if is_prime:
nums.remove(num)
nums.insert(0, num)
输出结果
print(nums)
注意事项
上述 只适用于查找数组中小于数组长度的一半的质数。对于更大的质数,需要使用更复杂的 ,例如埃拉托斯特尼筛法。