chyanog 发表于 2010-6-1 11:19:39

一个整数划分连续自然数的和的分法

http://zhidao.baidu.com/question/156653473.html?push=reduce
n个连续自然数相加,和能否等于1991,如果能分别列出结果
貌似以前的公务员考试题曾有一题类似,方法好像也不少,欢迎大家探讨.

wayne 发表于 2010-6-1 11:50:36

把1991进行因式分解

qianyb 发表于 2010-6-1 12:18:45

设k个连续自然数之和为1991,最小的自然数为n
则 nk+k(k-1)/2=1991
n=(3982-k(k-1))/2k,如果n是自然数即为解

qianyb 发表于 2010-6-1 13:25:09

不只1991的因子,还有2及2乘各因子的数都是

wayne 发表于 2010-6-1 13:39:02

嗯,答案有三种
994,995
176,177,....,186
80,81,...,101

chyanog 发表于 2010-6-1 14:30:57

曾笨笨地暴力了一下:
f := Flatten@Table], {i, x - 1}];
Count, 1991]
(*Position, 1991] // Length*)

Out:3

chyanog 发表于 2010-6-1 14:56:20

http://zdu6vg.bay.livefilestore.com/y1pbJJ9Xfbp_svmeLmHcnb04ewOL5jtIKM6BmPzyQX0kzgCklALUAh75i8xVoRPsEAyvN_plij8cpBuTMPwGlCqcju_rDjBdass/%E8%BF%9E%E7%BB%AD%E8%87%AA%E7%84%B6%E6%95%B0%E7%9A%84%E5%92%8C.jpg

wayne 发表于 2010-6-2 17:44:20

7# chyanog
最懒的代码:{ToRules@Reduce == 1991 && m > 0 && n > 0, Integers]}

chyanog 发表于 2010-6-3 22:14:28

8# wayne
如果题目扩展一下:一整数划分为连续素数的和(好像和Project Euler 前50题里面有个题差不多)只怕就不能偷懒用Reduce了吧。\(^o^)/~不知道有没较好的算法

qianyb 发表于 2010-6-4 07:46:16

跟素数挂钩的话,一般都没有什么特别的算法啊
页: [1]
查看完整版本: 一个整数划分连续自然数的和的分法