社区
数据结构与算法
帖子详情
虚心请教一个数学问题
jp1984
2005-05-14 06:48:45
1)求666^666的最后十位数
2)求666!^666!的最后十位数
我想解决了1)则可以解决2) .对于666!可对其展开成 素数的幂乘形式.
这个问题我零星的想了有一个礼拜.得到了各种各样的思路,但是都没有办法进行下去.
最有希望开展下去的思路是. 如何找到 x(mod a),和 x(mod a^n) n>=1 之间的关系.
本题编程可能比较容易实现 .对大指数的幂,可把幂化为2进制来解决。
请教各位同志,怎么解决这个问题呢?
...全文
240
22
打赏
收藏
虚心请教一个数学问题
1)求666^666的最后十位数 2)求666!^666!的最后十位数 我想解决了1)则可以解决2) .对于666!可对其展开成 素数的幂乘形式. 这个问题我零星的想了有一个礼拜.得到了各种各样的思路,但是都没有办法进行下去. 最有希望开展下去的思路是. 如何找到 x(mod a),和 x(mod a^n) n>=1 之间的关系. 本题编程可能比较容易实现 .对大指数的幂,可把幂化为2进制来解决。 请教各位同志,怎么解决这个问题呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jp1984
2005-05-17
打赏
举报
回复
50!最后十位为零为什么666!^666!就是零?
好笨!请指教!
GetTheWorld
2005-05-17
打赏
举报
回复
hoho jp1984笨笨了
blue_sky007
2005-05-17
打赏
举报
回复
所以遇到0结尾的自然就保留下来.因此,对于666!^666!的末尾的0有很多很多!
blue_sky007
2005-05-17
打赏
举报
回复
to:jp1984,末尾是0的数字乘以其他任何数字末尾的0都不会丢失的.
mathe
2005-05-16
打赏
举报
回复
666!^666!最后10位显然都是0
666^666做模10计算就可以了
aheadyes
2005-05-16
打赏
举报
回复
看来这些数字真的是楼主凭空出来的:)
大家都把焦点放在第一题,而乎略了第2题。
还是mathe心细!
50! 最后10位 肯定是0了,
何况666!^666!
jp1984
2005-05-16
打赏
举报
回复
为什么666!^666!最后十位都是0啊?
hanweizhouricher
2005-05-16
打赏
举报
回复
顶一下
jp1984
2005-05-15
打赏
举报
回复
to dext,
查了一下,java中long型确实支持超过十三位的数,挺好的。但是其实你做的还是错了。自己去发现错误吧.
to mysword,
为什么要不断的模10^10?求的只最后的十位数啊.
其实本题的初忠只是纯粹的数学推导,没想到各位都是借助计算机来解决。期待后来者.
gnefuil
2005-05-15
打赏
举报
回复
c不支持13位以上?搞笑啊
现在主流c编译器都是支持long long的吧,64位二进制,也就是20位10进制
我觉得要先搞清楚,要问的问题是对某个特殊数值比如666,还是对一般性问题求解,比如就是求n^n的后多少多少位
其次,你希望的解答是数学解答还是计算机解答?两者的思考方式是不一样的
GetTheWorld
2005-05-15
打赏
举报
回复
大家讨论不要有火药味嘛
aheadyes
2005-05-15
打赏
举报
回复
呵呵,我的数学菜得不行,继续关注。。。
算法版,有很多数学牛人,学习!
jp1984
2005-05-15
打赏
举报
回复
to aheadyes
是mysword的话有歧义,他的意思可以理解成对666^666的最后结果不断取模10^10.后面的我又没看 :p
呵呵.当是如果按照这种方法,对不支持13位以上的数的类型的语言.比如C,则还是要用到高精度.这里是算法版,不需要太注重实现的问题.我只是想弄清楚其中的数学的规律而已.
我想你是没有认真分析而已 6有很多优良的性质 6 = 1+2+3. 而且对大整数的幂运算来说,里面也有很多可用的定理.如Fermat定理和Euler定理.而对2)问则除了利用n!的标准素数展开外,可能还会用到wilson定理.老实说,本身这题就是个数学题,是出自一本数学趣题的.
我想你还是认真的做做再发言比较稳重.
gnefuil
2005-05-15
打赏
举报
回复
不断的模10^10
a^n mod m = ((((a mod m)*a mod m)*a mod m)...mod m)
dext
2005-05-15
打赏
举报
回复
第一个问题的代码
public class GetMod {
public static void main(String[] args) {
long s = 1;
for (int i = 0; i < 666; i++) {
s *= 666;
s %= 10000000000L;
}
System.out.println("s = " + s);
}
}
beepbug
2005-05-15
打赏
举报
回复
如果你的编译器支持long long int类型,即可以存放10位数,那很容易解决666^666。我只说一个算法:你每乘一次666,就把积对10^10求模余,即只剩下低10位数。任何一位数学教师都会告诉你,扔掉的东西对最后的积是没用的。
aheadyes
2005-05-15
打赏
举报
回复
bxyqt(碧血银枪) 和 dext(德克斯特) 的代码;
就是 mysword 的实现啊。
这种题有纯粹的数学推导吗?
一开始还以为楼主要的是,根据666^666的某种性质:一步就能推出来的公式. 我数学菜没能看出来)
为什么要不断的模10^10?求的只最后的十位数啊.?
因为你要求的是最后10位啊,所以最后跟结果有关的肯定是最后10位
取模就去掉无关的位。这样不断相乘后取模,最后就为所求的结果。
bxyqt
2005-05-15
打赏
举报
回复
step1:s=1,k=0
step2:s=s*666,k=k+1
step3:if s>10^10 转换S为字符,取后10位,再将s转换为数字。
step4:if k<=666,转step2。
最后的结果S就是你所求的值。
gnefuil
2005-05-15
打赏
举报
回复
模10^10不就是求最后10位数么?
下面不是写了数学推导了嘛?
jp1984
2005-05-14
打赏
举报
回复
数学方法解决,很明显这是个数论上的题目, 只要求得 666^666(mod 10^10)就行了,但是如何求的结果是个困难的事情..
加载更多回复(2)
2010年一年级
数学
第一册教学总结.doc
因此,我认真对待教学工作,努力提升自己的教学水平,
虚心
向前辈
请教
,以确保孩子们能够扎实掌握
数学
基础知识和技能。 在这一学期的教学实践中,我尝试将
数学
知识与现实生活紧密联系,让孩子们能够在实际情境中学习...
关于小学
数学
教学的经验总结.pdf
虚心
向同行
请教
,学习他们的优点,反思并改进自己的教学方法,是提升教学质量的有效途径。 此外,教学还需要与现实生活相联系,使学生看到
数学
的实际应用。通过实例教学,让学生在解决实际
问题
的过程中运用
数学
知识...
学校三班级
数学
下册教学总结五篇.docx
2. **
虚心
请教
,共同进步**:教师在教学过程中,积极向有经验的同行
请教
,通过合作探讨解决教学
问题
,共同提升教学水平。 3. **创设学习情境**:利用多媒体资源创设生动的教学情境,激发学生的学习兴趣,让他们在...
初中
数学
教师的个人工作述职报告.doc
同时,我也深知
虚心
请教
的重要性,经常向有经验的同事学习,以弥补自己的不足,通过不断反思和实践,提升教学质量。我坚信,只有不断进步,才能更好地服务于学生,服务于教育事业。 总结过去,展望未来,我将继续...
小学四年级
数学
心得.doc
小学四年级是学生
数学
基础巩固的关键阶段,这个时期的教学重心在于培养学生的
数学
思维能力和实际应用能力。以下是对小学四年级
数学
教学心得的详细解析: 首先,教学目标的设定至关重要。教师应该确保教学内容紧密...
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章