aboutsummaryrefslogtreecommitdiff
path: root/challenge-147/abigail/java/ch-1.java
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-01-18 08:58:27 +0000
committerGitHub <noreply@github.com>2022-01-18 08:58:27 +0000
commit52f3516552615dad1ad7566fd5934fca2914faaf (patch)
treedd57748653cc360b3f483f12d6821994f92cf721 /challenge-147/abigail/java/ch-1.java
parent9c9cb3dcb25537525090902ca4b8d10ae17e8960 (diff)
parentd2faecf9b3a1517b6303c84d23b35a6c26789fda (diff)
downloadperlweeklychallenge-club-52f3516552615dad1ad7566fd5934fca2914faaf.tar.gz
perlweeklychallenge-club-52f3516552615dad1ad7566fd5934fca2914faaf.tar.bz2
perlweeklychallenge-club-52f3516552615dad1ad7566fd5934fca2914faaf.zip
Merge pull request #5533 from Abigail/abigail/week-147
Abigail/week 147
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");
+ }
+}