最小化一个区间内整数的除数

时间:2016-04-08 18:01:02

标签: algorithm primes discrete-mathematics factoring

我最近偶然发现了一个算法问题,但我无法完成它。你得到一个正整数N< 10 ^ 13,你需要选择一个非负整数M,这样得和:M N + N (N-1)/ 2的除数位于1和N之间,包括的。 有人能指出我解决这个问题的正确方向吗? 谢谢你的时间。

1 个答案:

答案 0 :(得分:5)

找到大于N的素数P.有很多方法可以做到这一点。

如果N是奇数,那么M*N + N*(N-1)/2是N的倍数。它必须可以被N的任何因子整除,但如果我们选择M = P - (N-1)/2,那么M*N + N*(N-1)/2 = P*N,那么它就是& #39; t可以被1和N之间的任何其他整数整除。

如果N是偶数,则M*N + N*(N-1)/2是N / 2的倍数。它必须可以被N / 2的任何因子整除,但是如果我们选择M = (P - N + 1)/2(必须是整数),那么M*N + N*(N-1)/2 = (P - N + 1)*N/2 + (N-1)*N/2 = P*N/2,所以它不能被1之间的任何其他整数整除。和N。