2016-05-17 7 views
-1

Я знаю, что есть много других тем по этой проблеме, и я прочитал много, многие из них, и никто, кажется, не помогает. Я новичок в Java, и поэтому чувствую, что, возможно, я пропустил что-то простое. Если я использую «Очистить и построить» без ошибок, но как в ближайшее время, когда я пытаюсь запустить или отладить код, мне присваивается «Нет основного класса».Не найдено ни одного основного класса - Netbeans

Если я изменил «Public Void Main» и «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); 
} 
} 
+0

Изменение коэффициента к статической переменной: публичный статический длинный фактор; – Abdelhak

+0

это не проблема @Abdelhak – emotionlessbananas

+0

и использовать ** LargestPrime.isPrime (тестирование) ** вместо ** obj.isPrime (тестирование) ** – emotionlessbananas

ответ

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++){ 
Смежные вопросы