当前位置: 首页 > 知识库问答 >
问题:

蛮力大整数分解

文鸣
2023-03-14

正如你从标题中所看到的,我正在努力对因子为2个素数的大整数进行强制因子分解。我想知道是否有一种方法可以在forhtml" target="_blank">循环中使用for循环。我知道这是一种很糟糕的方式,但无论如何我都愿意这样做。(我本来打算使用费马分解定理,但如果没有一些额外的方法/库,你就不能求大整数,我无法做到这一点),所以请尝试一下,看看你是否可以帮助我。大致如下:

BigInteger n = new BigInteger("270653957405596110781");  // this is what i need the factors of
BigInteger TWO = new BigInteger("2");
for( BigInteger i = new BigInteger("1"); i < n.divide(TWO); i.nextProbablePrime() ){
    for( BigInteger k = new BigInteger("1"); k < n.divide(TWO); k.nextPossiblePrime){
        if(i.Multiply(k) = n){
            //i and k are the factors, and return them
        }
     }
 }

显然,这太可怕了,我知道你不能通过说i.nextPossiblePrime()来增加到下一个质数,你需要它说i=i.nextPossiblePrime,我只是想告诉你我希望它如何工作;但这就是为什么我要问,因为idk这样的事情是否有可能!

请让我知道这条路线是否可行,以及我如何修复这个错误代码,使其像我正在可视化一样运行!

谢谢

共有2个答案

花烨
2023-03-14

我对计算机科学还是相当陌生(8个月),这是我第一次回答问题,如果我帮不上什么忙,那么很抱歉。如果我错了,请纠正我(说真的,我正在努力学习),但我认为你要找的是二次筛。http://en.wikipedia.org/wiki/Quadratic_sieve你似乎比我更先进,但我用了一天的时间就实现了。它在分解大数方面非常有效。

我对Fermat的因式分解方法一无所知,但你能不能把BigInteger继承到一个新的类中,并用一个平方根函数来实现它?我不知道你需要什么样的精确度,但你可以用BigDecimal来代替。

希望这有帮助

编辑:我猜你没有测试你的代码。不能使用这样的运算符

仲孙善
2023-03-14

我拒绝“只是帮你做你正在做的事情”没用的。

我谦虚地在我的博客上推荐使用质数的短文编程。这里讨论的pollard rho算法将毫不费力地计算出您的数字。包括使用BigInteger的java实现。

顺便说一下,270653957405596110781=7588940707*35664260383。

 类似资料:
  • 对于我的Intro CS类,我们必须创建一个程序,找到一个特定的数字,在本例中是一个地址。地址在1000和9999之间,必须满足以下标准: 所有四位数字都不同 千位数字是十位数字的三倍 这个数字是奇数 数字之和是27 到目前为止,我已经能够生成数字的范围,并缩小奇数,但其余的是相当混乱的。建议?

  • 我想不出哪里出了问题。任何帮助都将不胜感激! 下面是运行算法并将其打印到输出文件的函数: 以下是主文件:

  • fn=fn−1+fn−2,其中f1=1和f2=1。因此,前12项将为f1=1,f2=1,f3=2,f4=3,f5=5,f6=8,f7=13,f8=21,f9=34,f10=55,f11=89,f12=144 第12项f12是第一个包含三位数的项。 斐波那契数列中第一个包含1000位数字的项是什么?

  • 我是Python新手,刚刚开始尝试使用LeetCode来构建我的排骨。在这个经典问题上,我的代码遗漏了一个测试用例。 问题如下: 给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。 您可以假设每个输入都有一个精确的解决方案,并且您可以不使用相同的元素两次。 例子: 给定nums=[2,7,11,15],target=9, 因为Nums[0]Nums[1]=2 7=9,返回[0,1]

  • null 在一个视频教程中,作者提到暴力方法是,阅读另一个答案,一个人认为是,另一个人认为是 强力是还是?更重要的是,您能说明您对蛮力方法执行了哪些分析以知道它是吗?

  • 我试图基于字母替换(没有固定偏移量)解密密码文本。我的目标是找到钥匙。 例如: 这是我的纯文本: 直到现代,密码学几乎只指加密,即将普通信息转换为无法理解的文本的过程 我生成一个随机替换,得到如下结果: 该公司的董事会成员在董事会会议上发言 规则: 纯文本只包含较低的字母a... z 空格不加密 英文文本 我想当我使用英文字母频率时,我可以用最常用的字母链接替换加密文本中最常用的字母:https: