Free Trial

ウィークリーチャレンジ - 日本語

トップになるためのスキルをお持ちですか? ウィークリーチャレンジを購読しましょう。ベストを尽くして問題を解決し、解決策を共有して、他のユーザーがどのように同じ問題に取り組んだのか確認しましょう。私たちも解答例を共有しています。

チャレンジ #124: 最大公約数

DaisukeTsuchiya
クエーサー

@AkimasaKajitani さん、お時間あればgawaさん出題の最小公倍数も算出してみて下さい。上にPostしていますが、結構頭使いました。

AkimasaKajitani
オーロラ

@DaisukeTsuchiya さん 

それは、、マクロでやるイメージですかね・・・?

 

DaisukeTsuchiya
クエーサー

@AkimasaKajitani さん、
gawaさんと私の最小公倍数用Workflowは上に載せています。素因数分解の処理をどうするかで結構悩みましたが、マクロ苦手なのでマクロ無しで解きました。逆にマクロでのやり方が思いつかず…。ちなみにLogとか使いました。

https://juken-mikata.net/how-to/mathematics/east-common-multiple.html

AkimasaKajitani
オーロラ

@DaisukeTsuchiya さん、 @gawa さん

 

最小公倍数やってみました。

 

スポイラ

ご期待の方法ではないと思いますが、最小公倍数は、a x b / 最小公約数 という手法があるので、最小公約数を出してからa x bを割るという方法でやってみました。N個の最小公倍数は、最小公倍数と他の値の最小公倍数を求めるというやり方(最小公約数も同じですが)でいけるようです。

https://algo-logic.info/lcm/


AkimasaKajitani_0-1626186769945.png

 

Outer Macro(Batch Macro)
AkimasaKajitani_1-1626186802505.png

Inner Macro(Iterative Macro)

AkimasaKajitani_2-1626186895222.png

 

AkimasaKajitani_3-1626186959734.png

 

※最大公約数取得マクロは再利用しています(あとから気づいたのですが、行生成ツール使うともっとシンプルにできるのと、外で一度に2レコードずつ入れるようにしているので、もう少し省略可能です。具体的には頭にある2つのレコード選択ツールが不要です)


 

 

 

DaisukeTsuchiya
クエーサー

@AkimasaKajitani さん、簡単に最小公倍数を求められる式があるのですね。勉強になりました。
処理速度もめちゃくちゃ早く流石です。しかしマクロ イン マクロ イン マクロで自分には作れそうもないです…。

gawa
ボリード

@AkimasaKajitani  @DaisukeTsuchiya 
最小公倍数を求めるアルゴリズムあるんですね!素因数分解だと素数を求めるとこで処理が重くなるので、Kajitaniさんのやり方がベストですね。いつも勉強になります。

ntakeda
アステロイド

できました。

スポイラ
ntakeda_0-1626240591582.png

 

mfujita
メテオール
スポイラ
mfujita_0-1626848181772.png

皆さんが素数を求めるのに時間がかかるとのことでしたが、一回こんがらがってしまったのでリセットして考え直したら割とすっきり目のフローになったかな?と勝手に思っています。