是小学生或者初中生么,高中也行呵呵..
这种问题我的想法是用计算机解决,推荐你学习信息学奥林匹克竞赛,如果你对这类问题特别感兴趣的话(http://www.***.org/bbs),在计算机中用枚举+剪枝的方法应该可以比较容易的在可以接受的时间内解决这个问题.
http://www.***.cn,里面有很多简单的问题可以用计算机解决哦,喜欢的话就别怕难,有些比较简单的,时间长了你也就觉得简单了.
如果你要强制用数学的话,我也没办法,本人算法能力比一般人强很多,数学能力比一般人强不多.我看上去像图论..