aboutsummaryrefslogtreecommitdiff
path: root/challenge-069/paulo-custodio/python/ch-1.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-069/paulo-custodio/python/ch-1.py')
-rw-r--r--challenge-069/paulo-custodio/python/ch-1.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-069/paulo-custodio/python/ch-1.py b/challenge-069/paulo-custodio/python/ch-1.py
new file mode 100644
index 0000000000..ca37f65b7d
--- /dev/null
+++ b/challenge-069/paulo-custodio/python/ch-1.py
@@ -0,0 +1,34 @@
+#!/usr/bin/env python3
+
+# Challenge 069
+#
+# TASK #1 > Strobogrammatic Number
+# Submitted by: Mohammad S Anwar
+# A strobogrammatic number is a number that looks the same when looked at upside
+# down.
+#
+# You are given two positive numbers $A and $B such that 1 <= $A <= $B <= 10^15.
+#
+# Write a script to print all strobogrammatic numbers between the given two
+# numbers.
+#
+# Example
+# Input: $A = 50, $B = 100
+# Output: 69, 88, 96
+
+import sys
+
+A, B = map(int, sys.argv[1:3])
+out = []
+
+def is_strobogrammatic(n):
+ if not all(c in '0689' for c in str(n)):
+ return False
+ inv = str(n).translate(str.maketrans('69', '96'))
+ return int(inv[::-1]) == n
+
+for n in range(A, B + 1):
+ if is_strobogrammatic(n):
+ out.append(n)
+
+print(", ".join(map(str, out)))