MST

星途 面试题库

面试题:Bash脚本中的复杂条件判断与循环控制

编写一个Bash脚本,要求能够从用户输入获取一个整数n,然后判断n是否为质数。如果n不是质数,打印出其所有的因子。脚本需使用循环和条件判断语句实现,并且要考虑边界情况,如输入非数字的处理。
26.8万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

read -p "请输入一个整数: " input

if [[! $input =~ ^[0-9]+$ ]]; then
    echo "输入的不是有效的整数"
    exit 1
fi

n=$input

if [ $n -le 1 ]; then
    echo "$n 不是质数"
    exit 0
fi

is_prime=true
for ((i = 2; i <= $((n / 2)); i++)); do
    if [ $((n % i)) -eq 0 ]; then
        is_prime=false
        break
    fi
done

if $is_prime; then
    echo "$n 是质数"
else
    echo "$n 不是质数,其因子有:"
    for ((i = 2; i <= $((n / 2)); i++)); do
        if [ $((n % i)) -eq 0 ]; then
            echo $i
        fi
    done
    echo $n
fi