我知道这个问题还有很多其他主题,我读过很多,但似乎都没有帮助。我是Java的新手,所以我觉得我可能错过了一些简单的东西。如果我使用"Clean and Build"没有错误,但作为一旦我尝试运行或调试代码,就会得到一个"找不到主类"的
如果我将"Public Void Main"one_answers"Public Void-IsPrime"更改为包含"Static",则会出现"非静态变量因子不能从静态上下文引用"错误。
有人能提供任何指导吗?
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);
}
}
尝试将factor
变量更改为类似于此public static long factor;
变量的static
并替换此for
循环:
for(j = 0; j <= factors.size(); j++){
使用<
而不是<=
,因为ArrayList的大小从0
到size-1
:
for(j = 0; j < factors.size(); j++){