我目前正在研究Project的Euler Problem 3,由于缺乏编程技巧,我一直都在失败。 这个问题的意思是,这个数字对于int来说太大了。 因此我用了双倍。 可悲的是,我的整个代码都基于整体划分。

`

public static ArrayList PrimeDeco(double Insert, int Position, ArrayList PrimeFactor){
    ArrayList<Integer> Prime= new ArrayList<Integer>();
    Prime=Primenumbers(1000);
    int i = Position;
    while(Insert%(Integer)Prime.get(i)==0){
        Insert=Insert/Prime.get(i);
    }
    PrimeFactor.add((Integer)Prime.get(Position));
    System.out.println(PrimeFactor);

    if(Insert!=1){
    System.out.println(Insert + " "  + Position);
    PrimeDeco(Insert,Position+1, PrimeFactor);

    }
    return PrimeFactor;
}

Insert的类型为double,Prime.get(i)为Primenumber。 在使用Integer 70工作时,我的程序打印[2,5,7]得分70,35,7,1。但很明显,这不适用于双类型数字,我不知道如何得到一个整数没有逗号的双重。

===============>>#1 票数:2

使用long而不是intdouble long是一种数据类型,可以存储最大为2 ^ 64(2 ^ 63-1)的整数值。

您还可以使用BigInteger ,它是一个可以存储任意大小整数的对象。

  ask by user3554329 translate from so

未解决问题?本站智能推荐:

1回复

欧拉项目#2

问题详细信息:斐波那契数列中的每个新术语都是通过将前两个术语相加而生成的。 从1和2开始,前10个术语将是: 1,2,3,5,8,13,21,34,55,89,... 通过考虑斐波那契数列中值不超过四百万的项,找到偶值项的总和 我得到2851443作为答案,并且检查了我的代
1回复

项目欧拉#4

目标是找到最大数字,它是两个三位数的乘积,是一个回文数。 我在java中编写了以下代码,但是当我运行它时,我没有输出。 可能有什么不对?
2回复

欧拉项目#4:Java

我在弄清楚为什么我的代码无法正常工作时遇到了麻烦。 本质上,我正在尝试对Euler#4项目进行编码,该项目试图找出可以通过将两个三位数相乘得到的最大回文数。 该代码似乎不起作用(它将编译)。 每当我执行代码时,它只会打印“ 0”。 我知道算法效率可能不高,但是我在做什么错呢?
5回复

项目欧拉#11

我最近开始使用Java来测试我的技能。 我遇到问题11,让所有以前的问题都正确。 我的代码有问题。 返回的答案似乎是正确的,但是当我在官方网站上查看它时,问题就出现了:问题出在Project Euler#11上 。 这是我的代码。 我有几个注释掉的调试行。 只是忽略它们。
4回复

项目欧拉97

我正在尝试解决Project Euler#97问题。 我不想在网上看,因为他们直接提供解决方案。 这是练习: 1999年发现了第一个发现超过一百万个数字的已知素数,并且是形式为2 ^ 6972593-1的梅森素数; 它包含正好2,098,960位数字。 随后发现其他形式为2
5回复

项目欧拉:#8 [重复]

这个问题在这里已有答案: 为什么Java认为从10到99的所有数字的乘积都是0? 9个答案 在尝试回答此问题时: 具有最大乘积的1000位数字中的四个相邻数字是9×9×8×9 = 5832。 731671765313306249192251196
3回复

项目欧拉45

我还不是一个熟练的程序员,但我认为这是一个有趣的问题,我想我会试一试。 三角形,五边形和六边形数字由以下公式生成: 三角形T_(n)= n(n + 1)/ 2 1,3,6,10,15 ...... 五角形P_(n)= n(3n-1)/ 2 1,5,12,22,3
7回复

项目欧拉#2无限?

我正在尝试解决Euler的项目#2并且我一直得到答案为“Infinity”或“NaN”(不是数字)我尝试将数字类型更改为int (最初为Double ),但这并没有解决任何问题刚刚给了我答案“-1833689714” 问题是: Fibonacci序列中的每个新术语都是通过添加前
1回复

欧拉8号项目

我已经阅读了有关项目Euler问题8的一些主题。但是,我不知道为什么我的代码给了我错误的答案。 我得到的答案是31752,正确的答案是40824。由于这是一项家庭作业,因此我无法复制该问题的解决方案,因此,我希望获得有关为什么我的代码无法正常工作的任何解释,以便我可以对其进行修复。
1回复

欧拉项目4 Java

我知道我的isPalindrome方法有效,因为当我插入906609时,它返回true,并且我知道我的Problem4方法在某个时候将993和913相乘,得出906609,但是由于某种原因,它一直等到580085返回该数字。 我究竟做错了什么? 我只是无法使其工作:( 我已经用许多其