所以有一个名为interviewstreet.com的网站。在这里,我们可以找到具有挑战性不幸的是,你必须登录才能看到问题。
以下是我试图解决的问题的简要说明:
找出方程
(1/x) + (1/y) = 1/N!
的正整数解的no(由n因子读取1)打印一个整数,它是模1000007的正整数解的no。
例如,当N=3
时,(x,y)
可以是:(7,42)
,(9,18)
,(8,24)
,(12,12)
,(42,7)
,(18,9)
,(24,8)
。或者我想。
请帮助我,特别是那些解决了这个问题的人。我刚刚为问题方程编码。我的算法有问题,我可以要求前10个整数的输出吗?即N=2
,N=3
,N=4
... N=10
,以便我可以找出算法中的缺陷。谢谢:))
编辑:哦,请不要发布解决方案代码,因为它会破坏我和试图解决此问题的人们的乐趣:)
答案 0 :(得分:3)
我的解决方案被采访街接受了。 首先,我的解决方案没有被接受,但在看到@Reinardus Surya Pradhit帖后,我意识到,如果对(x,y)将计数两次,那么我将它改成一窝并获得成功 我不会在这里发布我的解决方案,但我可以告诉你N = 3的所有变量的测试用例 - > N = 10 结果
N=3: 9
N=4: 21
N=5: 63
N=6: 135
N=7: 405
N=8: 675
N=9: 1215
N=10: 2295
我的提示是:试着表达N!来自p1^q1 * p2^q2 * ... * pn^qn
答案 1 :(得分:2)
暂时忽略N!
的特殊形式,以解决等式
1/k = 1/x + 1/y
写x = k + d
。然后
1/y = 1/k - 1/(k + d) = d/(k*(k+d))
确定解决方案数量的任务留给读者练习。
答案 2 :(得分:0)
重要的是只处理整数以避免舍入错误:首先将等式重新排列为:
N!(X+Y)=XY
我不确定从那里开始。
答案 3 :(得分:0)
得出最终结果我们需要计算(2 * q1 + 1)*(2 * q2 + 1)*(2 * q3 + 1)... 但是我们将如何存储结果,假设N = 32327将超出结果。 如果我错了,请纠正我