2014-10-30 63 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; 
}    
相关问题