min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

素因数分解を行うbashコマンド factor を使ってみる

とっても面白そうな記事。

tsujimotter.hatenablog.com

 

内容は高度な数学すぎてついていけない。天才だな。

 

けど、この記事の末尾にある部分ならf:id:min117:20210826233225p:plain

 

bashで実装できるんでないかな?と思い。

寝る前の頭の体操に作ってみた。

 

こうなる。

f:id:min117:20210826233351p:plain

 

ソースはこれ。

f:id:min117:20210827000501p:plain

もっとマシな実装いくらでもあるんだろうけど、そこは即興のお遊びってことで。

 

factorコマンドで素因数分解ができるの分かったのは収穫。

webkaru.net

 

ループを100回にしてみると…

f:id:min117:20210826234349p:plain

 

おおう。

f:id:min117:20210827000717p:plain

良い感じ。

 

コピペ保存用

#!/bin/bash

 

#「隣り合う立方数の差」はどのような素数で割り切れるか? 数学 整数論

# https://tsujimotter.hatenablog.com/entry/difference-between-two-adjacent-cubes

 

# bash素因数分解するコマンドfactor

# https://webkaru.net/linux/factor-command/

 

#for i in $(seq 1 7)

for i in $(seq 1 100)

do

    #echo "$i"

    a="$i"

    #echo 'a='"$a"

 

    b=$*1

    echo 'b=a+1='"$b"

    echo '  a  ='"$a"

 

    #echo '       b^3='$*2

    #echo '       a^3='$*3

    echo '      '"$b"'^3='$*4

    echo '      '"$a"'^3='$*5

 

    c=$*6

 

    F1=$(factor "$c" | awk -F: '{print $2}' | awk '{print $1}')

    #echo "$F1"

    F2=$(factor "$c" | awk -F: '{print $2}' | awk '{print $2}')

    #echo "$F2"

    F3=$(factor "$c" | awk -F: '{print $2}' | awk '{print $3}')

    #echo "$F3"

 

    #if -z "$F3"

    if [[ -n "$F3" ]]

    then

        echo 'c= '"$b"'^3-'"$a"'^3='"$c" = "$F1"' x '"$F2"' x '"$F3"

    elif [[ -n "$F2" ]]

    then

        echo 'c= '"$b"'^3-'"$a"'^3='"$c" = "$F1"' x '"$F2"

    else

        echo 'c= '"$b"'^3-'"$a"'^3='"$c" = "$F1"

    fi

    echo '----------'

 

done

 

 

 

 

*1:"$i"+1

*2:"$b"*"$b"*"$b"

*3:"$a"*"$a"*"$a"

*4:"$b"*"$b"*"$b"

*5:"$a"*"$a"*"$a"

*6:"$b"*"$b"*"$b" - "$a"*"$a"*"$a"