我想知道是否可以做到以下几点:
我们有:
X
是N
- 素数的乘积,因此我认为是唯一的。C
是常数。我们可以确保C
是一个数字,它是N
- 素数的一部分。无论哪种效果最好。X mod C = Z
我们有Z
和C
,我们知道X
是N
- 素数的乘积,其中N
受到限制,可以说前100个素数
无论如何我们可以回来X
?
答案 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
,那么不,那是不可能的。