aboutsummaryrefslogtreecommitdiff
path: root/challenge-241/deadmarshal/java/Ch2.java
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2023-11-13 10:15:17 +0800
committer冯昶 <fengchang@novel-supertv.com>2023-11-13 10:15:17 +0800
commit41f99d3c168e8def8c2a799c592282acf0d275a8 (patch)
treee862f32c73ecc3b39546d8f2e40268097bdc84eb /challenge-241/deadmarshal/java/Ch2.java
parent9831ad5b94643aec63e30e720b83dff7a5eac18b (diff)
parentf4d46d9aa21b95dbb99eec92f338d157273fbbdb (diff)
downloadperlweeklychallenge-club-41f99d3c168e8def8c2a799c592282acf0d275a8.tar.gz
perlweeklychallenge-club-41f99d3c168e8def8c2a799c592282acf0d275a8.tar.bz2
perlweeklychallenge-club-41f99d3c168e8def8c2a799c592282acf0d275a8.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-241/deadmarshal/java/Ch2.java')
-rw-r--r--challenge-241/deadmarshal/java/Ch2.java35
1 files changed, 35 insertions, 0 deletions
diff --git a/challenge-241/deadmarshal/java/Ch2.java b/challenge-241/deadmarshal/java/Ch2.java
new file mode 100644
index 0000000000..e810fe1429
--- /dev/null
+++ b/challenge-241/deadmarshal/java/Ch2.java
@@ -0,0 +1,35 @@
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Comparator;
+
+public class Ch2 {
+ public static void main(String[] args) {
+ ArrayList<Integer> list = new ArrayList<>(List.of(11,8,27,4));
+ prime_order(list);
+ System.out.println(list);
+ }
+
+ private static int count_factors(int n) {
+ int c = 2,count = 0;
+ while(n > 1) {
+ if(n % c == 0) {
+ n /= c;
+ count++;
+ }
+ else c++;
+ }
+ return count;
+ }
+
+ private static void prime_order(List<Integer> list) {
+ list.sort(new Comparator<Integer>() {
+ @Override
+ public int compare(Integer a, Integer b) {
+ int fa = count_factors(a);
+ int fb = count_factors(b);
+ return fa == fb ? Integer.compare(a,b) :
+ Integer.compare(fa,fb);
+ }});
+ }
+}
+