>
> import java.util.ArrayList;
> import java.util.Collections;
> import java.util.List;
> import java.util.Scanner;
>
>
> public class PrimeFactors {
>
> /**
> * @param args
> */
> public static void main(String[] args) {
> Scanner sc = new Scanner(System.in);
> int n = sc.nextInt();
> List<Integer> counts = new ArrayList<Integer>();
> List<Integer> l = new ArrayList<Integer>();
> l.add(2);
> l.add(3);
> l.add(5);
> l.add(7);
> for(int i=0;i<l.size();i++) {
> int j=0;
> while(n%l.get(i)==0) {
> n = n/l.get(i);
> j++;
> }
> counts.add(j);
> }
> if(n!=1) {
> System.out.println(-1);
> }
> else {
> System.out.println(counts);
> System.out.println(generateComb(counts));
> }
> }
> public static int generateComb(List<Integer> l) {
> List<Integer> li = new ArrayList<Integer>();
> int temp=0;
> for(int i=0;i<l.size();i++) {
> int k = 0;
> int j =0;
> if(l.get(i)==0&&temp==1&&i==1) {
> li.add(2);
> }
> if(l.get(i)==0) {
> continue;
> }
> switch (i) {
> case 0: k = l.get(i)%3;
> if(k!=l.get(i)) {
> j = l.get(i)/3;
> while(j!=0) {
> li.add(8);
> j--;
> }
> }
> if(k==2)
> li.add(2*k);
> temp=k;
> break;
> case 1: k = l.get(i)%2;
> if(k!=l.get(i)) {
> j = l.get(i)/2;
> while(j!=0) {
> li.add(9);
> j--;
> }
> }
> if(temp==1&&k==1) {
> li.add(6);
> }
> else if(k==1) {
> li.add(3);
> }
> else if(temp==1) {
> li.add(2);
> }
> break;
> case 2: k = l.get(i);
> while(k!=0) {
> li.add(5);
> k--;
> }
> break;
> case 3: k = l.get(i);
> while(k!=0) {
> li.add(7);
> k--;
> }
> break;
> }
> }
> Collections.sort(li);
> return generateNumFromArray(li);
> }
> public static int generateNumFromArray(List<Integer> l) {
> int num=0;
> for(int i=0;i<l.size();i++) {
> num = num*10 + l.get(i);
> }
> return num;
> }
> }
>
btw was this from interviewstreet interview ?? :P
--
You received this message because you are subscribed to the Google Groups
"Algorithm Geeks" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].