2013-05-30 37 views
2

我是Java的初學者,還有一些我想知道的事情以及可能性。我想知道在輸出之後是否有一種方法來「計算」int數量。我簡單代碼的目標是計算給定數字的因子(例如:10的因子是1,2,5,10,我應該顯示「4」,因爲它是數字上的因子總數)。到目前爲止,我只能顯示個人因素(例如1,2,5,10)。在Java上獲得總數的因子

這是我的簡單代碼。

public static void main(String[] args) { 
    System.out.println("Enter a number whose factors are desired: "); 

    Scanner scanNum = new Scanner(System.in); 

    int numFac = 0; 


    if(scanNum.hasNextInt()) 
    { 
    numFac = scanNum.nextInt(); 
    } 

    System.out.println("The Factors of the entered number are:-"); 

    for(int i = 1; i <= numFac; i++) 
    { 


    if(numFac%i == 0) 
    { 
     System.out.print(i+" "); 
    } 
    } 
} 

我可以做些什麼?

+0

只取第二個變量,即說j = 1並更新它在if語句內...並且比for循環外打印j的值作爲因子的數量... – aProgrammer

回答

3

引入int來計算因子。

int factorCount = 0; 
for(int i = 1; i <= numFac; i++) 
{ 
    if(numFac%i == 0) 
    { 
     factorCount++; 
     System.out.print(i+" "); 
    } 
} 
System.out.println("Number of factors " + factorCount; 
+0

哇,哇。問題的答案很快,謝謝你們。我希望當我更好地成爲一名程序員時,我將能夠以同樣的方式幫助你們。 – rsarellano

1

所以添加計數器:

int count = 0; 
for(int i = 1; i <= numFac; i++) { 
    if(numFac%i == 0) { 
     System.out.print(i+" "); 
     count++; 
    } 
} 

System.out.print("Number of factors is: " + count); 
1
int displayFactors(int num) { 
    int numOfFactors=0; 
    for (int i = 1; i < num; i++) { 
     if (num%i == 0) { 
      numOfFactors++; 
     } 
    } 
    return numOfFactors; 
} 
1
public class Test { 

public static void main(String[] args) 
{ 
    ArrayList<Integer> x = numberFactors(5000); 
    System.out.println("Factors: "+x+"\nTotal: "+x.size()); 
} 

public static ArrayList<Integer> numberFactors(int num){ 
    ArrayList<Integer> aux=new ArrayList<>(); 
    for(int i=1;i<=num/2;i++){ 
     if((num%i)==0){ 
      aux.add(i); 
     } 
    } 
    return aux; 
} 

}