• 締切済み

友愛数を探すプログラム

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

みんなの回答

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

因数分解は面倒だから、単純に i = 1 から i = √n までループをまわして、i が n を割切るたびに i と n/i をサマリーしていけばいいんじゃない?

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★アルゴリズム (1)まず『求める数』の素因数分解を行います。 (2)素因数分解された数をすべて加算します。 (3)加算した結果の『数』を素因数分解します。 (4)(3)で素因数分解された数をすべて加算します。 (5)(4)で加算された数が(1)で『求める数』と一致すれば『友愛数』になります。 (6)順番に1桁、10桁、100桁、1000桁…と総当りで調べる事になりそうです。 その他: ・上記の方法以外に最初にすべての数の素因数分解を行い、その数をすべて加算した結果を  配列などに格納します。例えば 1~1000 桁までを計算して、その後に配列内容が同じに値に  なればそのペアが『友愛数』になります。 ・以上。まずは『素因数分解』の部分を作成して下さい。

参考URL:
http://contest.thinkquest.gr.jp/tqj2002/50027/page048.html

関連するQ&A