2011-12-28 79 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