面试题答案
一键面试#!/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