public class RezolvareFAIMA {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
String nl = "";
while (!nl.equals("stop")) {
nl = input.nextLine().toLowerCase();
try {
int n = Integer.parseInt(nl);
System.out.println(aranjareFactorizare(factorizareSimpla(n)));
} catch (Exception e) {
if (!nl.equals("stop")) {
System.out.println("Numar incorect");
}
}
}
System.out.println("Program terminat. O zi buna!");
}
private static List< Integer > factorizareSimpla(Integer n){
if(n==1){
return new LinkedList< Integer >();
}else{
for(int i=2;i<=n;i++){
if(n%i==0){
List rec=factorizareSimpla(n/i);
rec.add(i);
return rec;
}
}
return null;
}
}
private static String aranjareFactorizare(List< Integer > factorizare){
HashMap< Integer,Integer > factoriUnici=new HashMap< Integer,Integer >();
for(Integer factor:factorizare){
if(factoriUnici.containsKey(factor)){
factoriUnici.put(factor, factoriUnici.get(factor)+1);
}else{
factoriUnici.put(factor,1);
}
}
String ret="";
for(Integer factorUnic:factoriUnici.keySet()){
ret+=""+factorUnic+(factoriUnici.get(factorUnic)>1?"^"+factoriUnici.get(factorUnic):"")+"*";
}
return ret.substring(0,ret.length()-1);
}
}
0 comentarii:
Trimiteți un comentariu