Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.lang.StringBuilder;
- class FactDecomp {
- public static boolean isPrime(long n){
- for(int i=2;i<n/2;i++){
- if(n%i==0){
- return false;}}
- return true;
- }
- public static String decomp(int n) {
- long total=1;
- ArrayList<String> pFactors = new ArrayList<String>();
- //Convert to Factorial
- for( int i=0;i<(n);i++){
- total += total*i;}
- for(long i=2;i<=total;i++){
- int count =0;
- if(isPrime(i)){
- while(total%i==0){
- count++;
- total = total/i;
- }
- // System.out.println(temp);
- if(count==1){
- pFactors.add(Long.toString(i));}
- else if(count>0){
- pFactors.add(Long.toString(i) + "^" + Integer.toString(count));}
- }
- }
- StringBuilder output = new StringBuilder();
- for(int i=0;i<pFactors.size();i++){
- output.append(pFactors.get(i));
- if(i!=pFactors.size()-1){
- output.append(" * ");}}
- return output.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement