public IAST factorInteger() { IInteger factor; IInteger last = IntegerSym.valueOf(-2); int count = 0; final List<IInteger> iFactors = factorize(); final IAST list = List(); IAST subList = null; for (int i = 0; i < iFactors.size(); i++) { factor = iFactors.get(i); if (!last.equals(factor)) { if (subList != null) { subList.add(IntegerSym.valueOf(count)); list.add(subList); } count = 0; subList = List(factor); } count++; last = factor; } if (subList != null) { subList.add(IntegerSym.valueOf(count)); list.add(subList); } return list; }
final IAST primeFactorsList = factorize(); int len = primeFactorsList.argSize();