2011-12-28 31 views
-3

因此有一个名为interviewstreet.com的网站。在这里我们可以发现具有挑战性的编程问不幸的是,您必须先登录才能看到问题。Interviewstreet样本测试案例:公式

这里是我试图解决这个问题的简要说明:

查找没有为方程(1/x) + (1/y) = 1/N!正整数解(由N个因子读1)打印一个整数,这是不的正整数解模1000007.

例如,当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

如果您已经编码解决方案,请张贴代码。 – 2011-12-28 01:08:03

+2

对不起,我不认为发布解决方案会很好。我只需要输入那些测试用例的输出,以便评估我的算法。 – 2011-12-28 04:25:17

+0

为了说明问题,如果您希望我们检查您的算法,我会问您是否发布了您的解决方案。我并不是建议某人在这里发布解决方案来为您解决问题。 – 2011-12-28 04:52:56

回答

3

我的解决方案被采访街接受。 首先,我的解决方案没有被接受,但看到@Reinardus Surya Pradhit后,我意识到,如果pair(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

+0

N = 131399的输出是什么,我得到了598995,但它给错了。 – peeyush 2012-05-26 20:33:20

0

处理整数,以避免四舍五入这是唯一重要的错误:由下式重新排列启动:

N!(X+Y)=XY 

我不知道从哪里里去。

2

忽视的N!一时的特殊形式,求解方程

1/k = 1/x + 1/y 

x = k + d。然后

1/y = 1/k - 1/(k + d) = d/(k*(k+d)) 

确定解决方案数量的任务留给读者练习。

+0

谢谢您的回答,先生。其实我已经有了自己的想法。你能给我N = 1〜N = 10先生的输出吗?我需要他们找出我算法的缺陷。谢谢:) – 2011-12-28 04:26:50

+0

你发布的数字是正确的,你似乎发现了缺陷。恭喜。 – 2011-12-28 09:42:35

0

在最终的结果得出的素数,我们需要计算(2 * Q1 + 1)*(2 * Q 2 + 1)*(2 * Q3 + 1)... 但我们将如何保存结果,比方说N = 32327,这将溢出上面的结果。 请纠正我,如果我错了

+0

你计算结果的模数是1000007吗? – 2013-11-14 03:34:06