Data update
This commit is contained in:
parent
796d366b97
commit
35bcdeebf8
504 changed files with 7045 additions and 610 deletions
33
Task/Deceptive-numbers/UNIX-Shell/deceptive-numbers.sh
Normal file
33
Task/Deceptive-numbers/UNIX-Shell/deceptive-numbers.sh
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
is () {
|
||||
return "$((!($1)))"
|
||||
}
|
||||
|
||||
fermat_test () {
|
||||
set -- 1 "$1" "$(($2 - 1))" "$2"
|
||||
while is "$3 > 0"
|
||||
do
|
||||
set -- "$(($1 * (-($3 & 1) & ($2 ^ 1) ^ 1) % $4))" "$(($2 * $2 % $4))" "$(($3 >> 1))" "$4"
|
||||
done
|
||||
return "$(($1 != 1))"
|
||||
}
|
||||
|
||||
set -- 7
|
||||
c=0 n=$1
|
||||
while :
|
||||
do
|
||||
for w in 4 2 4 2 4 6 2 6
|
||||
do
|
||||
fermat_test 10 "$((n += w))" && for p
|
||||
do
|
||||
is 'p * p > n' && {
|
||||
set -- "$@" "$n"
|
||||
break
|
||||
}
|
||||
is 'n % p == 0' && {
|
||||
echo "$n"
|
||||
is '(c += 1) == 10' && exit
|
||||
break
|
||||
}
|
||||
done
|
||||
done
|
||||
done
|
||||
Loading…
Add table
Add a link
Reference in a new issue