【发布时间】:2020-01-07 03:09:01
【问题描述】:
梅森素数遵循这个公式 2^n-1。我为不产生梅森素数的数字创建了一种新型因式分解方法。它非常抽象。它的前提是如果使用模数学应用特定数字并且新数字变为(零),则它不是梅森素数。我在网上向 The Journal of Number Theory 投了一篇论文,但是被期刊拒绝了。我已经附上了,如果你想看一下,我仍然觉得我的方法很有前途,但我不是编码专家。 This is a pdf I sent to the Journal of Number Theory我的问题是在我的新代码中我不知道如何在列表。该列表枚举正常,但我想从等于 242 的 253 中减去 z=11,而不是将其修改为 121,但是当我创建一个 1-254 的范围时,我似乎无法进行此数学运算。我对此感兴趣的原因是 253//11=23,它是 2^11-1 的因数。我从一个比率页面得到这个想法。
键入 1:11,第二个数字是 22,只需加上 1 和它的 23。
检查一下 https://goodcalculators.com/ratio-calculator/
该公式将针对范围内的任何数字,而我正在寻找的是零。
根据要求提供 grismar 的其他详细信息:
Grismar 和其他人,
我发现梅森素数在数字 11 之下产生的零比像 2^11-1 这样的数字更少。此外,当您通过减去 z 然后 mod z*z 输出数字时,您可能会在将其除以 z 后找到其中因子最低的数字。范围必须足够大才能找到该数字,但如果为零,只需除以 z。例如,当您通过将 11 除以 253 找到 23 时。您可以将 23 除以 2047,您应该得到 89。如果您使用不同的数字来检查这个因数,您很可能会得到一个分数。因此,当您使用这种方法检查时,当您发现一个不产生梅森素数之类的数字为零时。让我们选择 29. 536870911 ÷ 233 = 2304167 所以你得到一个因数而不是分数。
这些都是536870911的因数 [1、233、1103、256999、2089、486737、2304167、536870911]
如果您想了解更多详细信息,请发表评论。
在学习中寻求帮助的程序员是我的程序: 1 应该是开始范围!
while True:
x = int(input("Use 1 for the start range to make this work correctly:
"))
i = int(input("End Range: "))
z = int(input("square of primes multiplied by a number plus z which
does not make a
mersenne prime, this finds its factor of z: "))
fact = [(i + 1, x) for i, x in enumerate(range(x, i))]
print([((int(i)-z) % (z*z)) if isinstance(i, str) else i for i in fact])
【问题讨论】:
-
所以您想将此计算
(i - z) % z应用于fact中的每个元素? -
嗨,我想将此应用于整个列表。 (int(i)-z) % (z*z)。因此,如果我输入 1-254 范围。 253 将变为零。使用 z=11 时。
-
当您说
i时,您的意思是end range值,还是fact的每个元组中的0索引元素?尽量不要对所有内容都使用相同的变量,因为它会变得混乱。 -
我觉得很不清楚你想做什么。您的代码中有太多对我没有任何意义的东西。我会建议一个很好的基本 Python 教程。顺便说一句,您的手稿比缺少概念验证实施存在更严重的问题。尝试联系附近大学的数学系,询问他们是否可以看一下该提案,以及他们是否有兴趣共同发表该作品。但要准备好被告知那里没有可发布的内容。
-
感谢有关将其带到 Nico 大学的建议。
标签: python math numbers theory