Я пытаюсь написать программу, которая дает результат как простое разложение заданного числа. Тем не менее, мой код дает правильный ответ в виде вывода "2**2**2**2**2**5**7**7**11*"
, но я хочу, чтобы его конкретный вывод был "(p1**n1)(p2**n2)...(pk**nk)"
. Вот мой код:Prime Factors in JAVA
public class PrimeDecomp
{
public static String factors(int n)
{
String ans = "";
for (int i = 2; i <= n; i++)
{
if (n % i == 0)
{
// checks if i is a divisor of num
ans += i + "**";
// writes i in prime factorization
n = n/i;
// since it is written down, num=num/i
i--;
// just in case their are multiple factors of same number.
// For example, 12=2*2*3
}
}
return (ans.substring(0, ans.length() - 1));
}
public static void main(String[] args)
{
System.out.println(PrimeDecomp.factors(86240));
}
}
/* общественный класс PrimeDecomp { \t \t общественные статические факторы String (Int N) { \t \t \t \t String ans = ""; \t \t для (INT I = 2; г <= п; я ++) { \t \t, если (п% я == 0) {// проверяет, является ли я есть делитель NUM \t \t ANS + = I + «** «; // пишет i в простой факторизации \t \t n = n/i; // поскольку это записано, num = num/i \t \t i--; // на всякий случай, если они являются множественными факторами одного и того же числа. Так, например, 12 = 2 * 2 * 3 \t \t} \t \t} \t \t возврата (ans.substring (0, ans.length() - 1)); } \t public static void main (String [] args) { \t \t System.out.println (PrimeDecomp.factors (86240)); \t} } */ –
Возможно, вы заметили, что комментарии не форматируют код очень хорошо. Вам нужно отредактировать свой вопрос и добавить свой код. – azurefrog
Убедитесь, что вы [отформатируете его правильно] (http://stackoverflow.com/editing-help) тоже, пожалуйста. – tnw