天天看點

UVa 10791 (唯一分解) Minimum Sum LCM

題意:

輸入n,求至少兩個正整數,使得這些數的最小公倍數為n且和最小。

分析:

設n的分解式為

UVa 10791 (唯一分解) Minimum Sum LCM

,很顯然

UVa 10791 (唯一分解) Minimum Sum LCM

單獨作為一項,和最小。

這裡有兩個小技巧:

從2開始不斷的除n,直到不能整除為止。這樣就省去了素數判斷的問題,而且縮短了代碼量。因為最開始把所有n的2的因數都出去了,後面便不會出現n % 4 == 0的情況,這樣除n的都是素數。

從2除n一直到sqrt(n),如果n不為1,則此時除“剩下”的就是n最大的質因數。減少循環次數。

UVa 10791 (唯一分解) Minimum Sum LCM
UVa 10791 (唯一分解) Minimum Sum LCM

代碼君