aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-03-01 13:00:09 +0100
committerAbigail <abigail@abigail.be>2021-03-01 20:36:12 +0100
commit3581c89b20bf6a99be20949bc0f71b8be7aba8a2 (patch)
tree75aeb5f2ad494158252750d674cff9b004d7c942
parent19fbb299b0373513cfb92bf1faa8f65e3e7a315f (diff)
downloadperlweeklychallenge-club-3581c89b20bf6a99be20949bc0f71b8be7aba8a2.tar.gz
perlweeklychallenge-club-3581c89b20bf6a99be20949bc0f71b8be7aba8a2.tar.bz2
perlweeklychallenge-club-3581c89b20bf6a99be20949bc0f71b8be7aba8a2.zip
C solution for week 102, part 1
-rw-r--r--challenge-102/abigail/README.md1
-rw-r--r--challenge-102/abigail/c/ch-1.c164
2 files changed, 165 insertions, 0 deletions
diff --git a/challenge-102/abigail/README.md b/challenge-102/abigail/README.md
index 1d139c2f94..bea8dec9d5 100644
--- a/challenge-102/abigail/README.md
+++ b/challenge-102/abigail/README.md
@@ -18,6 +18,7 @@ for more information about it.
### Solutions
* [AWK](awk/ch-1.awk)
* [Bash](bash/ch-1.sh)
+* [C](c/ch-1.c)
* [Perl](perl/ch-1.pl)
diff --git a/challenge-102/abigail/c/ch-1.c b/challenge-102/abigail/c/ch-1.c
new file mode 100644
index 0000000000..564ffc732a
--- /dev/null
+++ b/challenge-102/abigail/c/ch-1.c
@@ -0,0 +1,164 @@
+# include <stdlib.h>
+# include <stdio.h>
+# include <string.h>
+
+/*
+ * See ../README.md
+ */
+
+/*
+ * Run as: cc -o ch-1.o ch-1.c; ./ch-1.o < input-file
+ */
+
+# define NR_OF_KNOWN_RARE_NUMBERS 124
+# define MAX_RARE_NUMBER_LENGTH 22
+
+/*
+ * Create a list of all known rare numbers.
+ */
+char * rare_numbers [23];
+
+int main () {
+ rare_numbers [ 0] = NULL;
+ rare_numbers [ 1] = NULL;
+ rare_numbers [ 2] = "65\n";
+ rare_numbers [ 3] = NULL;
+ rare_numbers [ 4] = NULL;
+ rare_numbers [ 5] = NULL;
+ rare_numbers [ 6] = "621770\n";
+ rare_numbers [ 7] = NULL;
+ rare_numbers [ 8] = NULL;
+ rare_numbers [ 9] = "281089082\n";
+ rare_numbers [10] = "2022652202\n" \
+ "2042832002\n";
+ rare_numbers [11] = NULL;
+ rare_numbers [12] = "868591084757\n" \
+ "872546974178\n" \
+ "872568754178\n";
+ rare_numbers [13] = "6979302951885\n";
+ rare_numbers [14] = "20313693904202\n" \
+ "20313839704202\n" \
+ "20331657922202\n" \
+ "20331875722202\n" \
+ "20333875702202\n" \
+ "40313893704200\n" \
+ "40351893720200\n";
+ rare_numbers [15] = "200142385731002\n" \
+ "204238494066002\n" \
+ "221462345754122\n" \
+ "244062891224042\n" \
+ "245518996076442\n" \
+ "248359494187442\n" \
+ "403058392434500\n" \
+ "441054594034340\n" \
+ "816984566129618\n";
+ rare_numbers [16] = "2078311262161202\n" \
+ "2133786945766212\n" \
+ "2135568943984212\n" \
+ "2135764587964212\n" \
+ "2135786765764212\n" \
+ "4135786945764210\n" \
+ "6157577986646405\n" \
+ "6889765708183410\n" \
+ "8052956026592517\n" \
+ "8052956206592517\n" \
+ "8191154686620818\n" \
+ "8191156864620818\n" \
+ "8191376864400818\n" \
+ "8650327689541457\n" \
+ "8650349867341457\n";
+ rare_numbers [17] = "22542040692914522\n" \
+ "67725910561765640\n" \
+ "86965750494756968\n";
+ rare_numbers [18] = "225342456863243522\n" \
+ "225342458663243522\n" \
+ "225342478643243522\n" \
+ "284684666566486482\n" \
+ "284684868364486482\n" \
+ "297128548234950692\n" \
+ "297128722852950692\n" \
+ "297148324656930692\n" \
+ "297148546434930692\n" \
+ "497168548234910690\n" \
+ "619431353040136925\n" \
+ "619631153042134925\n" \
+ "631688638047992345\n" \
+ "633288858025996145\n" \
+ "633488632647994145\n" \
+ "653488856225994125\n" \
+ "811865096390477018\n" \
+ "865721270017296468\n" \
+ "871975098681469178\n" \
+ "898907259301737498\n";
+ rare_numbers [19] = "2042401829204402402\n" \
+ "2060303819041450202\n" \
+ "2420424089100600242\n" \
+ "2551755006254571552\n" \
+ "2702373360882732072\n" \
+ "2825378427312735282\n" \
+ "6531727101458000045\n" \
+ "6988066446726832640\n" \
+ "8066308349502036608\n" \
+ "8197906905009010818\n" \
+ "8200756128308135597\n" \
+ "8320411466598809138\n";
+ rare_numbers [20] = "22134434735752443122\n" \
+ "22134434753752443122\n" \
+ "22134436953532443122\n" \
+ "22136414517954423122\n" \
+ "22136414971554423122\n" \
+ "22136456771730423122\n" \
+ "61952807156239928885\n" \
+ "61999171315484316965\n" \
+ "65459144877856561700\n";
+ rare_numbers [21] = "208393425242000083802\n" \
+ "219518549668074815912\n" \
+ "257661195832219326752\n" \
+ "286694688797362186682\n" \
+ "837982875780054779738\n";
+ rare_numbers [22] = "2414924301133245383042\n" \
+ "2414924323311045383042\n" \
+ "2414946523311023183042\n" \
+ "2576494891793995836752\n" \
+ "2576494893971995836752\n" \
+ "2620937863931054483162\n" \
+ "2620937863931054483162\n" \
+ "2620955641393276283162\n" \
+ "2622935621573476481162\n" \
+ "2622935643751276481162\n" \
+ "2622937641933274481162\n" \
+ "2622955841933256281162\n" \
+ "2622957843751254281162\n" \
+ "2727651947516658327272\n" \
+ "2747736918335953517072\n" \
+ "2788047668617596408872\n" \
+ "2788047848617776408872\n" \
+ "2788047868437576408872\n" \
+ "2788047888617376408872\n" \
+ "2939501759705522349392\n" \
+ "2939503375709360349392\n" \
+ "2939503537707740349392\n" \
+ "2939521359525562149392\n" \
+ "2939521557527542149392\n" \
+ "2939523577527340149392\n" \
+ "2939523779525320149392\n" \
+ "2959503377707360349192\n" \
+ "6344828989519887483525\n" \
+ "8045841652464561594308\n" \
+ "8045841654642561594308\n" \
+ "8655059576513659814468\n" \
+ "8655059772157639814468\n" \
+ "8655079374155679614468\n" \
+ "8655079574515659614468\n" \
+ "8888070771864228883913\n";
+
+ int length;
+
+ while (scanf ("%d", &length) > 0) {
+ if (length >= 0 && length <= MAX_RARE_NUMBER_LENGTH &&
+ rare_numbers [length] != NULL) {
+ printf ("%s", rare_numbers [length]);
+ }
+ }
+ return (0);
+}