无限期问题:关于如何找到多重完全数

yaos 2008-02-04 11:05:50
所谓的多重完全数的定义

整数N的所有素因子(包含N本身)的和如果是N的倍数则称为多重完全数
普通的完全数是2重的
存在10重的完全数

最小的是6 1+2+3+6=12 12/6=2 2重
120 1+2+3+4+5+6+8+10+12+15+20+24+30+40+60+120=360 360/120=3 3重
以 σ(N)表示N的所有因子和
则如果σ(N)/N=k 称N为k重完全数
设N = Π p(i)^r(i) i=1..n p(i)为素数, r(i)为指数
则σ(N) = Π (p(i)^(r(i) + 1) - 1) / (p(i) - 1)

现在的问题是如何发现这类数字
大家有什么好算法
贡献出来大家讨论
...全文
370 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaos 2008-02-07
  • 打赏
  • 举报
回复


你们热心的计算根号2和阶乘和斐波那契数列 是有巨大意义的事情?

有意义的有呢
来一道, 可不许不会
mathe 2008-02-07
  • 打赏
  • 举报
回复
没傻意思,有必要化时间做这些没有意义的事情嘛:)
yaos 2008-02-07
  • 打赏
  • 举报
回复
情绪化了
打住

算我胡说
对引起你反感的语言我在此道歉

就是想能引起某一人或者几个人的注意
引不起大家的兴趣

只好沉没了

我只是想得到结果而已
也是为了兴趣

mathe 2008-02-07
  • 打赏
  • 举报
回复
首先更正,我没有什么热心去计算2的根号。
此外,这些事情当然都没什么意义,只是觉得有点意思而已。
这于这里,很抱歉我很难产生兴趣。有时候仅仅很多简单的因素就可以让人失去兴趣。
至于说用C/C++写程序分解大整数,可以找现成的代码(这种情况我们根本不需要理解算法的意义,这个我更加不感兴趣),也可以找一些有关资料看一下再依葫芦画瓢,这个也没有什么意义。
最后奉劝一句,不尊重别人很难获得别人的尊重。
yaos 2008-02-07
  • 打赏
  • 举报
回复
使用C/C++写一个程序实现数域筛算法分解一个64位的整数
期限2年

你来?
哈哈

不用C/C++
用Python, SML/nj, Haskell, Clean等支持高精度整数的也可以
期限半年
yaos 2008-02-06
  • 打赏
  • 举报
回复
那你给我找个k=7的
我看看你们方法的效果

2^9*3*11*31 是3的
2^8*3*7*47*73是4的

今天重新算的
mathe 2008-02-06
  • 打赏
  • 举报
回复
本来就不是讨论同一个问题,何来得差太远,应该说这个题目比那个题目要简单一些,加了整数的约束,而且对于每个K,好像找到几个数你就满意了。
至于到K=10,是有点难度,简单估计一下,就知道需要计算到比较大的整数,手工自然很难找出来
mathe 2008-02-05
  • 打赏
  • 举报
回复
这个题目同那个superabundant问题的确联系非常紧密,不过要求有点不同。
题目中显然是N的所有因子而不是素因子,这个应该是笔误。
superabudant问题里面没有要求σ(N)/N是整数。
这个题目更加像是一个指派问题。
不过这里看你要处理多大的N,还有要求如何(是穷举某个范围内的数还是随便找一些解,越大越好;是找到结果越大越好还是K越大越好等等)
yaos 2008-02-05
  • 打赏
  • 举报
回复
好吧

我说说我的思路
(因为很难写公式,一半赖这个论坛,一半是自己表达能力弱)

首先对一些固定数字分析
如N=2^a*3^b*5^c*7^d类似的
则k' = σ(N)/N能迅速计算

此时,k'通常为一个分数,简化这个分数假设为p/q
此时继续增加N的素因子x^y,但保证和N的其他素因子互素,且x^y | p
得到p' / q' = p * σ(x^y) / (q * x^y)
则一般p' / q'的分子分母大小将减少

继续增加,直到q = 1则得到结果

如果在若干步骤后,无法得到结果
则需要抛弃若干步回溯到可能产生结果的位置,继续迭代

一个坏结果产生的现象是
N p / q中 P包含的小素因子太多,且和N的若干小素因子相同,一般这会产生大的k值,但超过预期的k是很难迭代到q = 1的
  • 打赏
  • 举报
回复
好好学习一下。

以前见过这个问题的讨论帖子,一见题目是E文的掉头就跑了,呵呵。
yaos 2008-02-05
  • 打赏
  • 举报
回复
另外

你们对k的大值的估计很乐观
超出我的预期

估计在k=10时,将很困难的找到结果
讨论K>20是没有意义的事情
除非能快速分解因子和判定素性!!!!
yaos 2008-02-05
  • 打赏
  • 举报
回复
gxqcn, 你们讨论的和我的要求差的太多了啊

我手算的东西不知道被我夹到那本书里了
呵呵

大学算出来过好多结果
全乱丢了

记得还曾经算出来过好多某种规则的圈

记得最小的4重的在几万左右是5位数字
5重的可能在8位左右
yaos 2008-02-05
  • 打赏
  • 举报
回复
我想得到个能可行的程序

最低要求
yaos 2008-02-05
  • 打赏
  • 举报
回复
谢谢指出错误

另外N的大小是受算法收敛控制的
且其中的素因子也是无法控制大小的
如果算法收敛快,则N小
否则上几百位数字也是很容易的
但已无法手算了

另外,收敛到第几重也无法预料

我手工最多算出来过6重
gxqcn 2008-02-05
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
“整数N的所有素因子”?应该是所有因子吧。

我的理解:判断多重完全数是建立在对整数进行分解的基础上,而对大整数的分解本身就是一个难题(RSA加密得以生存的基础),恐怕很难找到满意的算法吧。
yaos 2008-02-04
  • 打赏
  • 举报
回复
我有一个模糊的想法

曾经利用手算
找到好多

但这个想法现在不好实现计算机自动化

想听听大家如何解决
作为一个前端,有一款好的开发利器是必不可少的,editplus、notepad++都是不错的工具,体积轻巧,启动迅速(dw太浮肿了)。最近,又有一款新的编辑器诞生,席卷前端界,惹得无数喜爱,不少前端er纷纷抛弃用了数年的“伙伴”,投入了她的怀抱——Sublime Text2。Sublime Text2是一款跨平台的编辑器,再也不用为换平台而找不到合适的、熟悉的编辑器担忧了。 Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但目前可以无限期试用)也是HTML和散文先进的文本编辑器。漂亮的用户界面和非凡的功能,例如迷你地图,多选择,Python的插件,代码段,等等。完全可自定义键绑定,菜单和工具栏。Sublime Text的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。 Sublime Text 2 被称作Windows下的TextMate,而根据其官网介绍,Sublime Text的特点如下:拥有高效、没有干扰的界面,在编辑方面的多选、宏、代码片段等功能,以及很有特色的Minimap。 自从 Sublime Text 2.0 正式版以来已经新增支持 Retina 视网膜屏、拖拽文本、构建系统得以优化、支持 CSS 自动完成以及高亮设置等新特点~ Sublime Text 2 的特色功能: 1.良好的扩展功能,官方称之为安装包(Package)。 2.右边没有滚动条,取而代之的是代码缩略图,这个功能非常赞 3.强大的快捷命令“可以实时搜索到相应的命令、选项、snippet 和 syntex, 按下回车就可以直接执行,减少了查找的麻烦。” 4.即时的文件切换。 5.随心所欲的跳转到任意文件的任意位置。 6.多重选择(Multi-Selection)功能允许在页面中同时存在多个光标。 7.支持 VIM 模式 8.支持宏,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。 9.更新非常勤快

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧