def sum_of_factorial_digits(n): total = 1 for i in xrange(1, n + 1): total *= i digits = my_module.array_of_digits(total) return sum(digits)
def is_pandigital_pair(a, b): digits = my_module.array_of_digits(a*b) digits.extend(int(i) for i in str(a)) digits.extend(int(i) for i in str(b)) if len(digits) == 9: if 0 not in digits: if len(list(set(digits))) == 9: return(True) return(False)
import my_module units = ["", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"] tens = ["twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"] total_length = 0 for i in xrange(1, 1001): if i < 20: total_length += len(units[i]) elif i < 100: digits = my_module.array_of_digits(i) total_length += len(tens[digits[0]-2]) total_length += len(units[digits[1]]) else: digits = my_module.array_of_digits(i) if i == 1000: total_length += 11 elif i % 100 == 0: total_length += (len(units[digits[0]])+7) elif i - digits[0]*100 < 20: total_length += len(units[i - digits[0]*100]) total_length += len(units[digits[0]]) + 10 else: total_length += len(tens[digits[1]-2]) total_length += len(units[digits[2]]) total_length += len(units[digits[0]]) + 10
import my_module maxi = 0 for a in range (1, 100): for b in range(1, 100): power = a**b digits = my_module.array_of_digits(power) if sum(digits) > maxi: maxi = sum(digits) print(maxi)
def rearrange(i): return sorted(list(set(my_module.array_of_digits(i))))
def test_array_of_digits(self): self.assertEqual(my_module.array_of_digits(3024), [3, 0, 2, 4])
import my_module number = 7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450 digits = my_module.array_of_digits(number) print my_module.largest_product_of_consecutive_integers_in_array(digits, 13)
import my_module factorials = 0 for i in xrange(145, 100000): factorial_of_digits = 0 for d in my_module.array_of_digits(i): total = 1 for n in xrange(1, d + 1): total *= n factorial_of_digits += total if factorial_of_digits == i: print(i) factorials += i print(factorials)
def is_pandigital_number(n): digits = my_module.array_of_digits(n) if 0 not in digits: if len(list(set(digits))) == len(digits): return(True) return(False)
from __future__ import division from fractions import Fraction import my_module fractions = [] for a in xrange(10, 100): for b in xrange(10, 100): if a < b: list_a = my_module.array_of_digits(a) list_b = my_module.array_of_digits(b) if 0 not in list_a: if 0 not in list_b: for i in xrange(0, 2): if list_a[i] == list_b[1 - i]: if a / b == list_a[1 - i] / list_b[i]: fractions.append(a) fractions.append(b) productnumerator = 1 productdenominator = 1 for j in xrange(0, 7, 2): productnumerator *= fractions[j] productdenominator *= fractions[j + 1] print(Fraction(productnumerator, productdenominator).denominator)