2014-10-20 47 views
-4

在這段代碼中用戶輸入我想增加或僅質數之和其中的所有質或不是質數組合,但元素的第n個號...將第n個元素接受到數組中並將所有進入數組的素數相加?

public class prime { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Scanner in = new Scanner(System.in); 
     System.out.println("enter the size of an array"); 
     int abc = in.nextInt(); 
     int num[] = new int[abc]; 
     int a = 0, sum = 0; 

     for (int k = 0; k < num.length; k++) { 
      System.out.println("enter the value" + (k + 1)); 
      num[k] = in.nextInt(); 
     } 

     for (int i = 0; i < num.length - 1; i++) { 
      for (int j = 2; j < i; j++) { 
       if (num[i] % i == 0) { 
        a = 1; 
        break; 
       } 
      } 
      if (a == 0) { 
       sum = sum + i; 
      } 
     } 
     System.out.println("number is prime" + sum); 
    } 
} 

回答

0

有你的程序中的邏輯錯誤。 1):在內for循環如果a被設置,那麼它將始終包含值1。因此你必須糾正它。 (即,在語句sum=sum+i 2)之後將值0重新賦值爲asum應累加素數的數組元素的值。因此,sum=sum+i - >sum=sum+num[i];

此外,在內部for循環,您可以把條件j<sqrt(i)減少程序的運行時間。假設您可以執行所有必要的操作以使代碼可以運行。

相關問題