コマンドライン引数を取り、その素因数を出力するJavaプログラム「Factors」があります。たとえば、引数 3757208 を指定してプログラムを実行すると、2 2 2 7 13 13 397 が出力されます。各素因数が 1 回だけ出力されるようにコードを変更する必要があります。したがって、上記の例では、私の望ましい結果は 2 7 13 397 です。ありがとう! コードは次のとおりです。
public class Factors
{
public static void main(String[] args)
{ // Print the prime factors of N.
long N = Long.parseLong(args[0]);
long n = N;
for (long i = 2; i*i <= n; i++)
{ // Test whether i is a factor.
while (n % i == 0)
{ // Cast out and print i factors
n = n / i;
System.out.print(i + " ");
}
}
// if biggest factor occurs only once, n > 1
if (n > 1) System.out.println(n);
else System.out.println();
}
}