我知道在这个问题上还有很多其他主题,我读过很多很多,但似乎都没有帮助。我是Java新手,所以我觉得也许我错过了一些简单的东西。如果我使用"清洁和构建"没有错误,但是 当我尝试运行或调试代码时,我得到了一个"没有找到主要类。"
如果我更改" Public Void Main"和#34; Public Void IsPrime"包含"静态",然后我给出"非静态变量因子不能从静态上下文引用"错误。
任何人都可以提供任何指导吗?
public class LargestPrime {
/**
*
*/
public long factor;
/**
* @param args the command line arguments
*/
public static void main(String[] args){
double var, sqvar;
var = 600851475143L;
sqvar = Math.sqrt(var);
ArrayList<Long> factors = new ArrayList<>();
long i = 1;
while(i <= sqvar){
if (var % i == 0){
if(i % 2 != 0 ){
factors.add(i);
}
}
i = i + 2;
}
ArrayList<Long> primes = new ArrayList<>();
int j;
for(j = 0; j <= factors.size(); j++){
factor = factors.get(j);
LargestPrime obj = new LargestPrime();
obj.isPrime(factor);
}
}
/**
*
* @param testing
*
*/
public static void isPrime(long testing){
testing = factor;
System.out.println(testing);
}
}
答案 0 :(得分:0)
尝试将factor
变量更改为此static
变量的public static long factor;
。
并替换此for
循环:
for(j = 0; j <= factors.size(); j++){
使用<
代替<=
,因为ArrayList的大小从0
到size-1
:
for(j = 0; j < factors.size(); j++){