aboutsummaryrefslogtreecommitdiff
path: root/challenge-150
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-150')
-rw-r--r--challenge-150/paulo-custodio/perl/ch-1.pl34
-rw-r--r--challenge-150/paulo-custodio/perl/ch-2.pl4
-rw-r--r--challenge-150/paulo-custodio/python/ch-1.py44
-rw-r--r--challenge-150/paulo-custodio/python/ch-2.py29
4 files changed, 97 insertions, 14 deletions
diff --git a/challenge-150/paulo-custodio/perl/ch-1.pl b/challenge-150/paulo-custodio/perl/ch-1.pl
index 29886086e3..4d68df8d9c 100644
--- a/challenge-150/paulo-custodio/perl/ch-1.pl
+++ b/challenge-150/paulo-custodio/perl/ch-1.pl
@@ -2,21 +2,31 @@
# Challenge 150
#
-# Input: $a = '1234' $b = '5678'
-# Output: 7
+# TASK #1 > Fibonacci Words
+# Submitted by: Mohammad S Anwar
#
-# Fibonacci Words:
+# You are given two strings having same number of digits, $a and $b.
#
-# '1234'
-# '5678'
-# '12345678'
-# '567812345678'
-# '12345678567812345678'
-# '56781234567812345678567812345678'
-# '1234567856781234567856781234567812345678567812345678'
+# Write a script to generate Fibonacci Words by concatenation of the previous
+# two strings. Finally print 51st digit of the first term having at least
+# 51 digits.
+# Example:
#
-# The 51st digit in the first term having at least 51 digits
-# '1234567856781234567856781234567812345678567812345678' is 7.
+# Input: $a = '1234' $b = '5678'
+# Output: 7
+#
+# Fibonacci Words:
+#
+# '1234'
+# '5678'
+# '12345678'
+# '567812345678'
+# '12345678567812345678'
+# '56781234567812345678567812345678'
+# '1234567856781234567856781234567812345678567812345678'
+#
+# The 51st digit in the first term having at least 51 digits
+# '1234567856781234567856781234567812345678567812345678' is 7.
use Modern::Perl;
diff --git a/challenge-150/paulo-custodio/perl/ch-2.pl b/challenge-150/paulo-custodio/perl/ch-2.pl
index 87d688a504..73fb98b9a4 100644
--- a/challenge-150/paulo-custodio/perl/ch-2.pl
+++ b/challenge-150/paulo-custodio/perl/ch-2.pl
@@ -2,14 +2,14 @@
# Challenge 150
#
-# TASK #2 › Square-free Integer
+# TASK #2 > Square-free Integer
# Submitted by: Mohammad S Anwar
# Write a script to generate all square-free integers <= 500.
#
# In mathematics, a square-free integer (or squarefree integer) is an integer
# which is divisible by no perfect square other than 1. That is, its prime
# factorization has exactly one factor for each prime that appears in it. For
-# example, 10 = 2 · 5 is square-free, but 18 = 2 · 3 · 3 is not, because 18 is
+# example, 10 = 2 x 5 is square-free, but 18 = 2 x 3 x 3 is not, because 18 is
# divisible by 9 = 3**2.
#
# Example
diff --git a/challenge-150/paulo-custodio/python/ch-1.py b/challenge-150/paulo-custodio/python/ch-1.py
new file mode 100644
index 0000000000..b3b832d0a2
--- /dev/null
+++ b/challenge-150/paulo-custodio/python/ch-1.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env perl
+
+# Challenge 150
+#
+# TASK #1 > Fibonacci Words
+# Submitted by: Mohammad S Anwar
+#
+# You are given two strings having same number of digits, $a and $b.
+#
+# Write a script to generate Fibonacci Words by concatenation of the previous
+# two strings. Finally print 51st digit of the first term having at least
+# 51 digits.
+# Example:
+#
+# Input: $a = '1234' $b = '5678'
+# Output: 7
+#
+# Fibonacci Words:
+#
+# '1234'
+# '5678'
+# '12345678'
+# '567812345678'
+# '12345678567812345678'
+# '56781234567812345678567812345678'
+# '1234567856781234567856781234567812345678567812345678'
+#
+# The 51st digit in the first term having at least 51 digits
+# '1234567856781234567856781234567812345678567812345678' is 7.
+
+import sys
+
+pos = 51
+
+def fib_word(a, b, length):
+ seq = [a, b]
+ while len(seq[-1]) <= length:
+ seq.append(seq[-2] + seq[-1])
+ seq.pop(0)
+ return seq[-1]
+
+words = sys.argv[1:3]
+fib_word_result = fib_word(words[0], words[1], pos)
+print(fib_word_result[pos - 1])
diff --git a/challenge-150/paulo-custodio/python/ch-2.py b/challenge-150/paulo-custodio/python/ch-2.py
new file mode 100644
index 0000000000..bdfb6bc4ae
--- /dev/null
+++ b/challenge-150/paulo-custodio/python/ch-2.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python3
+
+# Challenge 150
+#
+# TASK #2 > Square-free Integer
+# Submitted by: Mohammad S Anwar
+# Write a script to generate all square-free integers <= 500.
+#
+# In mathematics, a square-free integer (or squarefree integer) is an integer
+# which is divisible by no perfect square other than 1. That is, its prime
+# factorization has exactly one factor for each prime that appears in it. For
+# example, 10 = 2 x 5 is square-free, but 18 = 2 x 3 x 3 is not, because 18 is
+# divisible by 9 = 3**2.
+#
+# Example
+# The smallest positive square-free integers are
+# 1, 2, 3, 5, 6, 7, 10, 11, 13, 14, 15, 17, 19, 21, 22, 23, 26, 29, 30, ...
+
+from sympy import factorint
+
+def is_squarefree(n):
+ factors = factorint(n)
+ for k in factors.values():
+ if k > 1:
+ return False
+ return True
+
+out = [n for n in range(1, 501) if is_squarefree(n)]
+print(", ".join(map(str, out)))