Grouping an array of strings into anagrams
Technical


   groupAnagrams( args );



That should be:

    groupAnagrams( args, hm );


Bug in copy/paste somehow?

1-liner statements, even simple ones like this:


      if( list[ x ] == null ) continue;



should be braced like:

       if( list[ x ] == null ) {
           continue;
       }


This prevents maintenance problems later, and makes revision history easier to follow.

Algorithm

Your algorithm is taking each member of the array, and comparing to each subsequent member, removing anagram matches.

The primeHash() method is interesting, but ultimately it is a red herring of sorts... and it only works for lower-case input words. You have obviously invested some thought in to it, but there's a simpler solution to that problem:

private static final String anagramKey(String word) {
    word = word.toLowerCase();
    char[] chars = word.toCharArray();
    Arrays.sort(chars);
    return new String(chars);
}


Take all letters, sort them, return a String. All anagrams of the same letters will have the same keys.

With that key system, the basic code can be come simpler with:

HashMap&lt;String,List&lt;String&gt;&gt; matchMap = new HashMap&lt;&gt;();
for (String word : args) {
    String key = anagramKey(word);
    if (!matchMap.containsKey(key)) {
        matchMap.put(key, new ArrayList&lt;String&gt;());
    }
    matchMap.get(key).add(word);
}

System.out.println(matchMap);


That reduces your problem to an \$O(n)\$ one.