構築クラスと、ユーザー入力から数値を読み取り、数値の素因数分解を吐き出すメインメソッドの 2 つのクラスを作成しています。コードは Java を使用しています。
例:
数値を入力: 150
5
5
3
2
ただし、私のプログラムでは、要因のリスト全体を取得しています。
例:
数値を入力: 150
150
75
50
25
5
3
1
素因数を得るためにこれをどのように変更しますか?
主な方法:
import java.util.*;
public class FactorPrinter
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.print("Enter a integer: ");
String input1 = scan.nextLine();
int input = Integer.parseInt(input1);
FactorGenerator factor = new FactorGenerator(input);
System.out.print(factor.getNextFactor());
while (!factor.hasMoreFactors())
{
System.out.print(factor.getNextFactor());
}
}
}
これが私のクラスです:
public class FactorGenerator
{
private int num;
private int nextFactor;
public FactorGenerator(int n)
{
num = nextFactor = n;
}
public int getNextFactor()
{
int i = nextFactor - 1 ;
while ((num % i) != 0)
{
i--;
}
nextFactor = i;
return i;
}
public boolean hasMoreFactors()
{
if (nextFactor == 1)
{
return false;
}
else
{
return true;
}
}
}