Sum by Factors

public static String sumOfDivided(int[] s) {
       for (int i:s){
           primeFactors(i);
       }
       String[] res = {""};
       integers.forEach( x->{
           int sum = 0;
           boolean flag = false;
           for (int i:s){
               if (i%x == 0){
                   sum+=i;
                   flag=true; 
               }
           }
           if(flag)
               res[0]+="("+x+" "+sum + ")";
       });
       return res[0];

   }
   static  Set<Integer> integers = new TreeSet<>();
   private static void primeFactors( int n) {
       if (n<0) n =-n;
       for (int i = 2; i * i <= n; i++) {
           if (n % i == 0) {
               integers.add(i);
               while (n % i == 0) {
                   n = n / i;
               }
           }
       }
       if (n > 1) {
           integers.add(n);
       }
   }
posted @ 2021-08-17 15:00  _lemonV  阅读(54)  评论(0编辑  收藏  举报