aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-001/paulo-custodio/stats.pl5
-rw-r--r--challenge-047/paulo-custodio/python/ch-1.py27
-rw-r--r--challenge-047/paulo-custodio/python/ch-2.py22
-rw-r--r--challenge-048/paulo-custodio/python/ch-1.py25
-rw-r--r--challenge-048/paulo-custodio/python/ch-2.py18
5 files changed, 97 insertions, 0 deletions
diff --git a/challenge-001/paulo-custodio/stats.pl b/challenge-001/paulo-custodio/stats.pl
index d44c77d537..6e8b69719d 100644
--- a/challenge-001/paulo-custodio/stats.pl
+++ b/challenge-001/paulo-custodio/stats.pl
@@ -40,6 +40,11 @@ for my $chall_dir (path(".")->children(qr/challenge-\d+/)) {
}
}
+# challenge 232 did not happen
+for my $lang (sort keys %LANG) {
+ $sols[232]{$lang} = 2;
+}
+
# output
for my $chall (1 .. $#sols) {
if (($chall) % 10 == 1) {
diff --git a/challenge-047/paulo-custodio/python/ch-1.py b/challenge-047/paulo-custodio/python/ch-1.py
new file mode 100644
index 0000000000..caebfcb2b6
--- /dev/null
+++ b/challenge-047/paulo-custodio/python/ch-1.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env perl
+
+# Challenge 047
+#
+# TASK #1
+# Roman Calculator
+# Write a script that accepts two roman numbers and operation. It should then
+# perform the operation on the give roman numbers and print the result.
+#
+# For example,
+#
+# perl ch-1.pl V + VI
+# It should print
+#
+# XI
+
+import roman
+import sys
+
+if len(sys.argv) != 4:
+ print("Usage: ch-1.py xxx +- xxx")
+elif sys.argv[2] == "+":
+ print(roman.toRoman(roman.fromRoman(sys.argv[1])+roman.fromRoman(sys.argv[3])))
+elif sys.argv[2] == "-":
+ print(roman.toRoman(roman.fromRoman(sys.argv[1])-roman.fromRoman(sys.argv[3])))
+else:
+ print("Usage: ch-1.py xxx +- xxx")
diff --git a/challenge-047/paulo-custodio/python/ch-2.py b/challenge-047/paulo-custodio/python/ch-2.py
new file mode 100644
index 0000000000..a0a80f18bc
--- /dev/null
+++ b/challenge-047/paulo-custodio/python/ch-2.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python3
+
+# Challenge 047
+#
+# TASK #2
+# Gapful Number
+# Write a script to print first 20 Gapful Numbers greater than or equal to 100.
+# Please check out the page for more information about Gapful Numbers.
+
+def is_gapful(n):
+ n1 = int(str(n)[0])
+ n2 = int(str(n)[-1])
+ div = n1*10+n2
+ return n % div == 0
+
+out = []
+n = 100
+while len(out) < 20:
+ if is_gapful(n):
+ out.append(n)
+ n += 1
+print(", ".join([str(x) for x in out]))
diff --git a/challenge-048/paulo-custodio/python/ch-1.py b/challenge-048/paulo-custodio/python/ch-1.py
new file mode 100644
index 0000000000..d20aeb24ea
--- /dev/null
+++ b/challenge-048/paulo-custodio/python/ch-1.py
@@ -0,0 +1,25 @@
+#!/usr/bin/env python3
+
+# Challenge 048
+#
+# TASK #1
+# Survivor
+# There are 50 people standing in a circle in position 1 to 50. The person
+# standing at position 1 has a sword. He kills the next person i.e. standing at
+# position 2 and pass on the sword to the immediate next i.e. person standing at
+# position 3. Now the person at position 3 does the same and it goes on until
+# only one survives.
+#
+# Write a script to find out the survivor.
+
+people = [x for x in range(1, 51)]
+p = 0
+while len(people) > 1:
+ if p >= len(people)-1:
+ people = people[1:]
+ else:
+ people = people[0:p+1]+people[p+2:]
+ p += 1
+ if p >= len(people):
+ p = 0
+print(people[0])
diff --git a/challenge-048/paulo-custodio/python/ch-2.py b/challenge-048/paulo-custodio/python/ch-2.py
new file mode 100644
index 0000000000..b0dc6ce96d
--- /dev/null
+++ b/challenge-048/paulo-custodio/python/ch-2.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+# Challenge 048
+#
+# TASK #2
+# Palindrome Dates
+# Write a script to print all Palindrome Dates between 2000 and 2999. The format
+# of date is mmddyyyy. For example, the first one was on October 2, 2001 as it is
+# represented as 10022001.
+
+from datetime import datetime, timedelta
+
+dt = datetime(2000,1,1)
+while dt < datetime(3000,1,1):
+ str = dt.strftime("%m%d%Y")
+ if str[::-1] == str:
+ print(str)
+ dt += timedelta(days=1)