プロが教える店舗&オフィスのセキュリティ対策術

可能なかぎりたくさんの有愛数を探すプログラムをつくりたいのですが、やり方が全くわかりません。。。
どうすればいいんでしょうか?

A 回答 (2件)

因数分解は面倒だから、単純に i = 1 から i = √n までループをまわして、i が n を割切るたびに i と n/i を

いけばいいんじゃない?
    • good
    • 0

★アルゴリズム


(1)まず『求める数』の素因数分解を行います。
(2)素因数分解された数をすべて加算します。
(3)加算した結果の『数』を素因数分解します。
(4)(3)で素因数分解された数をすべて加算します。
(5)(4)で加算された数が(1)で『求める数』と一致すれば『友愛数』になります。
(6)順番に1桁、10桁、100桁、1000桁…と総当りで調べる事になりそうです。

その他:
・上記の方法以外に最初にすべての数の素因数分解を行い、その数をすべて加算した結果を
 配列などに格納します。例えば 1~1000 桁までを計算して、その後に配列内容が同じに値に
 なればそのペアが『友愛数』になります。
・以上。まずは『素因数分解』の部分を作成して下さい。

参考URL:http://contest.thinkquest.gr.jp/tqj2002/50027/pa …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!