mod,prime - >反可能

时间:2010-05-19 20:11:15

标签: algorithm math modulo

我想知道是否可以做到以下几点:

我们有:

  • XN - 素数的乘积,因此我认为是唯一的。
  • C是常数。我们可以确保C是一个数字,它是N - 素数的一部分。无论哪种效果最好。
  • X mod C = Z

我们有ZC,我们知道XN - 素数的乘积,其中N受到限制,可以说前100个素数

无论如何我们可以回来X

6 个答案:

答案 0 :(得分:2)

我不这么认为。因为C不是X的一部分,所以在执行X mod C操作时会丢失信息。此外,mod仅返回操作的一部分,并且需要div来获取结果的其他部分。

示例:(3 * 5)%7 = 1.因为您丢失了信息,我没有看到任何方法从1和7返回15而没有直接div部分。你必须开始相加7s并添加余数并进行比较以模拟等式中缺失的div部分。

答案 1 :(得分:2)

没有。这是一个反例:

假设X = 105(= 3x5x7)。

取C = 13,使X mod C = Z = 1。

然而,X = 118(= 2×59)也给出Z = 1,其中C = 13。

答案 2 :(得分:0)

您的问题很难理解,但也许您想了解Chinese Remainder Theorem

答案 3 :(得分:0)

我们需要更多信息来为您解决这个问题。例如,如果你的意思是X是前N个素数的乘积,N <= 100,那么强力搜索将对你有效。

如果你的意思是前100个素数的某个子集的乘积,那么它就更难了。你基本上都在询问是否可以判断X是否平滑或给定X mod Z.如果你能做到这一点,你可能能够改进最着名的整数因子算法,因为它们依赖于检测各种形式的平滑数

当然,如果你可以选择足够大的C,那么X mod C = X,那就很容易了。

有关平滑数字的讨论,请参阅http://en.m.wikipedia.org/wiki/Smooth_number

答案 4 :(得分:0)

我不确定我是否正确理解你的问题,但是如果给你Z和C而你想要计算X.

如果X mod C = Z,那么这意味着对于某个自然数q它认为qC + Z = X,因为q是未知的,通常不可能完全计算X,但是,有一个无限集满足这个等式的数字。这也不奇怪。假设你有一些X'可能是解决方案,那么X''= X'+ C是同样有效的解决方案。

如果我没有误会,C和X是否是互质的(即它们(不)具有共同的素因子)是不相关的。但是,它会使您的解决方案设置得更小,因为如果X和C有共同的素因子,比如p1,p2,... pn,那么每个有效解也应该被p1 * p2 * ... * pn整除。

答案 5 :(得分:0)

有无限素数(因此N素数的无限乘积),但C只有X mod C个可能的值。因此,以极大的概率,将存在满足X的无限有效X mod C = Z

所以,如果你想确定哪些你的原始X,那么不,那是不可能的。