aboutsummaryrefslogtreecommitdiff
path: root/challenge-147/abigail/java/ch-1.java
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2022-01-18 10:37:54 +0000
committerdrbaggy <js5@sanger.ac.uk>2022-01-18 10:37:54 +0000
commit5bd157274f9d0377833a954cf48d6b4866615aae (patch)
tree804cbbdb2fd3d9de5864c736e5088677f94bf898 /challenge-147/abigail/java/ch-1.java
parent990d5177887cda20c8a4804b91afe5e9bcaaf201 (diff)
parent4c0094aa3f456810b1795784caa1fe06fbdacb5c (diff)
downloadperlweeklychallenge-club-5bd157274f9d0377833a954cf48d6b4866615aae.tar.gz
perlweeklychallenge-club-5bd157274f9d0377833a954cf48d6b4866615aae.tar.bz2
perlweeklychallenge-club-5bd157274f9d0377833a954cf48d6b4866615aae.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-147/abigail/java/ch-1.java')
-rw-r--r--challenge-147/abigail/java/ch-1.java54
1 files changed, 54 insertions, 0 deletions
diff --git a/challenge-147/abigail/java/ch-1.java b/challenge-147/abigail/java/ch-1.java
new file mode 100644
index 0000000000..9b3b57be9e
--- /dev/null
+++ b/challenge-147/abigail/java/ch-1.java
@@ -0,0 +1,54 @@
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-147
+//
+
+//
+// Run as: ln ch-1.java ch1.java; javac ch1.java; java ch1
+//
+
+import java.util.*;
+import java.util.ArrayList;
+
+public class ch1 {
+ public static boolean is_prime (int p) {
+ if (p == 2) {return true;}
+ if (p % 2 == 0) {return false;}
+ for (int i = 3; i * i <= p; i += 2) {
+ if (p % i == 0) {return false;}
+ }
+ return (true);
+ }
+
+ public static void main (String [] args) {
+ ArrayList <Integer> todo = new ArrayList <Integer> ();
+ todo . add (2);
+ todo . add (3);
+ todo . add (5);
+ todo . add (7);
+ for (int p: todo) {
+ System . out . printf ("%d ", p);
+ }
+ int count = 20 - todo . size ();
+ int pow = 10;
+ main:
+ while (todo . size () > 0) {
+ ArrayList <Integer> new_todo = new ArrayList <Integer> ();
+ for (int d = 1; d <= 9; d ++) {
+ for (int p: todo) {
+ int candidate = d * pow + p;
+ if (is_prime (candidate)) {
+ System . out . printf ("%d ", candidate);
+ new_todo . add (candidate);
+ count --;
+ if (count <= 0) {
+ break main;
+ }
+ }
+ }
+ }
+ pow = pow * 10;
+ todo = new_todo;
+ }
+ System . out . print ("\n");
+ }
+}