2016-05-17 21 views
-1

この問題に関して他にも多くのトピックがありますが、私は多くを読んだことが多く、どれも役に立たないようです。私はJavaに慣れていないので、単純なことが分からないかもしれないと感じています。コードを実行またはデバッグしようとするとすぐに "Clean and Build"エラーは発生せず、 と表示されます。「メインクラスが見つかりません」と表示されます。メインクラスが見つかりません - 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の応答@ @Abdelhak – Abdelhak

+0

** LargestPrime.isPrime(テスト)**の代わりに、** obj.isPrime(テスト)** – emotionlessbananas

+0

問題ではないと を使用 – emotionlessbananas

答えて

0

このpublic static long factor;変数のようなstaticfactor変数を変更してください。
そして、このforループ置き換える:size-10からのArrayListのサイズので<代わりの<=を使用して

for(j = 0; j <= factors.size(); j++){ 

を:静的変数へ

for(j = 0; j < factors.size(); j++){ 
関連する問題