From 2e7a94b0d7ffd661bc2ead718e2aac99f1de68d2 Mon Sep 17 00:00:00 2001 From: Abigail Date: Fri, 26 Nov 2021 00:08:20 +0100 Subject: More solutions for week 133 --- challenge-133/abigail/java/ch-2.java | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 challenge-133/abigail/java/ch-2.java (limited to 'challenge-133/abigail/java/ch-2.java') diff --git a/challenge-133/abigail/java/ch-2.java b/challenge-133/abigail/java/ch-2.java new file mode 100644 index 0000000000..335a889d75 --- /dev/null +++ b/challenge-133/abigail/java/ch-2.java @@ -0,0 +1,52 @@ +// +// See ../README.md +// + +// +// Run as: ln ch-2.java ch2.java; javac ch2.java; java ch2 < input-file +// + +import java.util.*; + +public class ch2 { + public static int base = 10; + public static int count = 10; + public static int [] small_primes = + {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31}; + + public static int digitsum (int number) { + int sum = 0; + while (number > 0) { + sum += number % base; + number /= base; + } + return (sum); + } + + public static void main (String [] args) { + int number = 1; + int c = count; + while (c > 0) { + int ds_n = digitsum (++ number); + int ds_f = 0; + int n = 0; + int copy = number; + for (int i = 0; i < small_primes . length && copy > 1; i ++) { + int prime = small_primes [i]; + while (copy % prime == 0) { + ds_f += digitsum (prime); + n ++; + copy /= prime; + } + } + if (copy > 1) { + ds_f += digitsum (copy); + n ++; + } + if (n > 1 && ds_n == ds_f) { + System . out . println (number); + c --; + } + } + } +} -- cgit