2014-10-30 43 views
-4

什麼即時嘗試: 編寫一個接受一些整數作爲命令行參數的Java程序; - 顯示傳遞 整數的個數 - 顯示的最小和最大數量 - 顯示在列表中的所有質無*我可以不列出我列出的所有素數。怎麼了? :S

import java.util.*; 

    class commandLine 
    { 

     public static void main(String [] args) 
     { 
      int a[] = new int[args.length]; 
      int count = 0; 

      for (int i = 0; i<a.length;i++) 
      { 
       a[i] = Integer.parseInt(args[i]); 
       count++; 
      } 
      System.out.println("Number of digits: " +count); 

      int large = a[0]; 
      int small = a[0]; 
      int num = 0; 
      for (int j = 0; j<a.length; j++) 
      { 
       num = a[j] ; 
       if(num>large) 
       { 
        large=num; 
       } 
       if(num<small) 
       { 
        small=num; 
       } 
      } 
      System.out.println("the largest is:" + large); 
      System.out.println("Smallest no is : " + small); 

      boolean isPrime = true; 
      for (int i = 2; i<a.length;i++){   
       for (int j=2; j<i; j++)   
        { 
          if((i % j)== 0) 
          {            
           isPrime=false;  
           break;     
          } 
        }    

      if(isPrime)   
      { 
       System.out.println(i + " is Prime"); 
      } 
       isPrime = true;  
      } 
     } 
    }    
+3

你的問題是什麼? – 2014-10-30 15:12:56

回答

0

你的素數從檢查2檢查號碼則爲a.length,而它應該檢查數組的元素a。

boolean isPrime; 
for (int i : a) {  
    isPrime = true; 
    for (int j=2; j<i; j++) { 
     if ((i % j)== 0) {            
      isPrime=false;  
      break;     
     } 
    }    

    if(isPrime) { 
     System.out.println(Integer.toString(i) + " is Prime"); 
    } 
} 

這應該有所幫助 - 免責聲明:我沒有運行此代碼。

0

在素數檢查中使用[i]而不是i。容易犯錯。

0
for (int i =0; i<a.length;i++){ 
    int tempInt = a[i]; 
     for (int j=2; j<tempInt; j++)   
     { 
        if((tempInt % j)== 0) 
        {            
        isPrime=false;  
        break;     
        } 
     } 
     if(isPrime == true) System.out.println("Prime Number : " + tempInt); 
     else isPrime = true; 
}    
相關問題