diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-08-15 21:58:39 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-15 21:58:39 +0100 |
| commit | 84e0ff46b3f17b71d903190abd7dd68831c11b8c (patch) | |
| tree | 31ab8d58f4b76ac8c6c0ed56580dc83304f3c3d2 /challenge-125/abigail/java/ch-1.java | |
| parent | 77fce3c8870cb065511df5db166f0b4d4845b26c (diff) | |
| parent | 0dfc1786c2ab2282b265ba90fe18aa32dc33e3fb (diff) | |
| download | perlweeklychallenge-club-84e0ff46b3f17b71d903190abd7dd68831c11b8c.tar.gz perlweeklychallenge-club-84e0ff46b3f17b71d903190abd7dd68831c11b8c.tar.bz2 perlweeklychallenge-club-84e0ff46b3f17b71d903190abd7dd68831c11b8c.zip | |
Merge pull request #4715 from Abigail/abigail/week-125
Abigail/week 125
Diffstat (limited to 'challenge-125/abigail/java/ch-1.java')
| -rw-r--r-- | challenge-125/abigail/java/ch-1.java | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/challenge-125/abigail/java/ch-1.java b/challenge-125/abigail/java/ch-1.java new file mode 100644 index 0000000000..722b6d0f81 --- /dev/null +++ b/challenge-125/abigail/java/ch-1.java @@ -0,0 +1,52 @@ +// +// See ../README.md +// + +// +// Run as: ln ch-1.java ch1.java; javac ch1.java; java ch1 < input-file +// + +import java.util.*; + +public class ch1 { + public static long introot (long square) { + return ((long) Math . floor (Math . sqrt (square))); + } + + public static void main (String [] args) { + Scanner scanner = new Scanner (System . in); + while (scanner . hasNextInt ()) { + long n = scanner . nextInt (); + if (n <= 2) { + System . out . println ("-1"); + continue; + } + + long n_sq = n * n; + long c = n + 1; + long c_sq = n_sq + 2 * n + 1; + + while (2 * c - 1 <= n_sq) { + long b_sq = c_sq - n_sq; + long b = introot (b_sq); + + if (b_sq == b * b) { + System . out . printf ("%d %d %d\n", n, b, c); + } + + c_sq += 2 * c + 1; + c += 1; + } + + long max_a = (long) Math . floor (n / Math . sqrt (2)); + long a = 3; + for (a = 3; a <= max_a; a ++) { + long b_sq = n_sq - a * a; + long b = introot (b_sq); + if (b_sq == b * b) { + System . out . printf ("%d %d %d\n", a, b, n); + } + } + } + } +} |
