我試圖讓代碼找到用戶輸入的因素,給用戶輸入的素因式分解,並給出lcm和gcm。它應該很簡單。它是編程類的簡介,但它對我來說太快了。我花了數小時閱讀和學習,並試圖讓這個代碼工作。請幫忙。Java因式分解失敗 - 爲什麼它循環?
import java.util.Scanner;
public class PattersonFactorization {
public static void main(String[] args)
{
//create scanner to obtain input from command window
Scanner input = new Scanner(System.in);
//initialization phase
int input1 = 0; //initialize first input from user
int input2 = 0; //initialize second input from user
//prompt twice for two inputs from user
//until they enter a positive value for each input
do
{
System.out.println("Please provide your first positive number: ");
input1 = input.nextInt();
}//end do for input1
while(input1 <= 0);
do
{
System.out.println("Please provide your next positive number: ");
input2 = input.nextInt();
}//end do for input2
while(input2 <= 0);
// call methods for factorization calculations
calculateFactors(input1);
calculateFactors(input2);
calculatePrime(input1);
calculatePrime(input2);
calculateLCM(input1, input2);
calculateGCF(input1, input2);
}//end of main
public static void calculateFactors(int input)
{
for(int countFactor = 1; countFactor < input; countFactor++)
{
if(countFactor % input == 0);
System.out.println(countFactor);
}
}//end of calculateFactors
public static void calculatePrime(int input)
{
for(int countPrime = 1; countPrime < input; countPrime++)
{
if(countPrime % input == 0);
System.out.println(countPrime);
input = input/countPrime;
countPrime--;
}
}//end of calculatePrime
public static void calculateLCM(int input1, int input2)
{
for(int factorNum = 1; input1 % factorNum != 0 && input2 % factorNum != 0; factorNum++)
System.out.println(factorNum);
}//end of calculateLCM
public static void calculateGCF(int input1, int input2)
{
for(int factorNum = input1; input1 % factorNum != 0 && input2 % factorNum != 0; factorNum--)
System.out.println(factorNum);
}
}//end of class
`
是,「分解計算的調用方法」是一條評論。我修復了它並試圖再次運行它。當我運行程序時,它只是循環「1」。 –
我在程序的僞代碼設計上獲得了100%的回報,並且我將它記錄到了這封信中,但這根本不起作用。 –
只需注意一下(雖然這不能解決您的問題):您應該在完成掃描時關閉掃描儀(例如,在'main'方法的末尾放置'input.close();')。 – neuronaut