diff options
Diffstat (limited to 'challenge-150/paulo-custodio/python')
| -rw-r--r-- | challenge-150/paulo-custodio/python/ch-1.py | 44 | ||||
| -rw-r--r-- | challenge-150/paulo-custodio/python/ch-2.py | 29 |
2 files changed, 73 insertions, 0 deletions
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))) |
