スーパーバランスを決める

A superabundant number is an integer
n that sets a new upper bound for its ratio with the
divisor sum function σ. In other words,
n is superabundant if and only if, for all positive
integers x that are less than n:

$$frac{sigma(n)}n>frac{sigma(x)}x$$

値のいくつかについて:

n   σ(n)   σ(n)/n   superabundant
1   1      1.0000   yes
2   3      1.5000   yes
3   4      1.3333   no
4   7      1.7500   yes
5   6      1.2000   no
6   12     2.0000   yes
7   8      1.1429   no
8   15     1.8750   no
9   13     1.4444   no

より長いリスト(テストケースの場合)は、 OEIS A004394 にあります。

最後の超過数と結びついているので、1つの強く推奨される否定テストケース(インタープリタがそれを処理できる場合)は360360です。

チャレンジ

あなたのプログラムは単一の正の整数をとり、その整数が多量であるかどうかを表す真偽値または偽の値を出力する必要があります。

As this is , the shortest answer in bytes wins.

ベストアンサー

Jelly, 7 bytes

Æs÷$ÞṪ=

オンラインで試してみてください!

Jelly, 8 bytes

Æs÷$ÐṀ⁼W

オンラインで試してみてください!<

テストスイート!

説明

Æs÷$ÐṀ⁼W ~ Full program (monadic).

    ÐṀ   ~ Keep the elements with maximal link value (auto-rangifies).
Æs       ~ Divisor sum.
  ÷$     ~ Divide by the current element.
      ⁼W ~ Check equality with the input wrapped into a singleton.
         ~ (for integers like 360360)

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です