#!/bin/bash

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

解释:

  1. 用两个 for 循环,外层循环从 2 到 500,内层循环从 2 到当前数的一半。
  2. 判断当前数是否能被内层循环中的任意一个数整除,如果可以,则不是素数,退出内层循环。
  3. 如果内层循环结束后仍然没有退出,说明当前数是素数,输出它。
Shell 脚本:查找 500 以内的所有素数

原文地址: https://www.cveoy.top/t/topic/nlHA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录