Sample testcase for Interviewstreet: Equations

限于喜欢 提交于 2019-12-13 09:49:01

问题


So there is a website named interviewstreet.com. Here we can find challenging programming problems. Unfortunately you have to be logged in to see the questions.

Here's a brief description of the problem I'm attempting to solve:

Find the no of positive integral solutions for the equations (1/x) + (1/y) = 1/N! (read 1 by n factorial) Print a single integer which is the no of positive integral solutions modulo 1000007.

For example, when N=3, (x,y) can be: (7,42), (9,18), (8,24), (12,12), (42,7), (18,9), (24,8). Or so I thought.

Help me please, especially you who have solved this problem. I have just coded for the problem Equations. There is something wrong with my algorithm, can I ask for output for the first 10 integers? i.e. N=2, N=3, N=4 ... N=10 so that I can find out the flaw in my algorithm. Thanks :)

EDIT: Oh, please don't post solution code as it will ruin the fun for me and for people trying to solve this :)


回答1:


My solutions was accepted by interview street. Firstly, my solutions wasn't accepted, but after saw @Reinardus Surya Pradhit post, i realized, if pair (x, y) will be count twice, so i change it a litter bit and got success I will not post my solution here, but i can tell you the test case for all variable from N = 3 -> N = 10 Here the result

N=3: 9
N=4: 21
N=5: 63 
N=6: 135
N=7: 405
N=8: 675
N=9: 1215
N=10: 2295

My hint is: try to express N! in primes from like p1^q1 * p2^q2 * ... * pn^qn




回答2:


Disregarding the special form of N! for the moment, to solve the equation

1/k = 1/x + 1/y

write x = k + d. Then

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

The task of determining the number of solutions from that is left as an exercise for the reader.




回答3:


It is important to only deal with integers to avoid rounding errors: start by rearranging the equation to:

N!(X+Y)=XY

I'm not sure where to go from there.




回答4:


to arrive at final result we need to calculate (2*q1+1)*(2*q2+1)*(2*q3+1)... But how we will store the result , let say N=32327 which will overflow above result. Please correct me if I'm wrong



来源:https://stackoverflow.com/questions/8650827/sample-testcase-for-interviewstreet-equations

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!