Pea*_*Gen 1 java primitive type-conversion
请看下面的代码
import java.util.ArrayList;
import java.util.List;
public class Big
{
static int primeNumber = 2;
public static void main(String[]args)
{
int numberDevident = 147;
int left=0;
int result=0;
List numbers = new ArrayList();
while(true)
{
result = numberDevident/primeNumber;
left = numberDevident%primeNumber;
if(left!=0)
{
primeNumber++;
}
else
{
numbers.add(primeNumber);
numberDevident = result;
System.out.println(primeNumber);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
此代码查找给定数字的主要因子(代码中的变量"numberDevident").但是,有一种情况,即给定的数字是600851475143
它无法匹配int,long或double.我怎么能用这么大的数字来解决这个问题呢?请帮忙
在这里,我对BigInteger做了同样的事情
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
public class Problem3
{
static BigInteger primeNumber = new BigInteger("2");
static BigInteger zero = new BigInteger("0");
static BigInteger add = new BigInteger("1");
public static void main(String[]args)
{
BigInteger numberDevident = new BigInteger("147");
BigInteger left= new BigInteger("0");;
BigInteger result=new BigInteger("0");;
List numbers = new ArrayList();
while(true)
{
result = numberDevident.divide(primeNumber);
left = numberDevident.remainder(primeNumber);
if(left!=zero)
{
primeNumber.add(add);
}
else
{
numbers.add(primeNumber);
numberDevident = result;
System.out.println(primeNumber.toString());
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
仍然没有好处,它没有显示任何东西.请帮忙.
归档时间: |
|
查看次数: |
118 次 |
最近记录: |