表示数字的数据类型的类型

时间:2011-06-05 17:50:25

标签: java

我有几种方法来计算任何数字的最大素数因子,但它不会编译,因为它表示我的输入超出范围

public class ProjectEuler3 {


    public static void main(String[] args) {
    System.out.println  (findfactors(600851475143));
    }


    public static float findfactors(long n){
        long[]factors=new long[1000];int nooffactor=0;
        int c =0;
        for( long i=2;i<n;i++){
                if (findPrime(i)){
                factors[c++]=i;
            nooffactor++;}

        }

        return factors[nooffactor-1];


    }
    public static boolean findPrime(float n){

        for(long i=2;i<n;i++){
            if(n%i==0)
                return false;
        }
        return true;
    }

}

3 个答案:

答案 0 :(得分:4)

使用L评估后缀以表示long类型的常量:

findfactors(600851475143L)

答案 1 :(得分:2)

如果在代码中输入数字,则将它们视为整数值。但是,600851475143大于整数可以容纳。因此,你必须附加一个“L”来标记为long int:

findfactors(600851475143L)

答案 2 :(得分:1)

您可能还想查看BigInteger class,因为您可能需要考虑更大的数字