Paste number 76629: numbers2.py

Index of paste annotations: 1

Paste number 76629: numbers2.py
Pasted by: sbp
When:2 years, 11 months ago
Share:Tweet this! | http://paste.lisp.org/+1N4L
Channel:#swhack
Paste contents:
Raw Source | XML | Display As
#!/usr/bin/env python

def sums(a, b, c, d): 
   if (a + b + c) == d: 
      return True
   return False
sums_true = set()

def descending(a, b, c, d): 
   if (a > b) and (b > c): 
      return True
   return False
descending_true = set()

def even(a, b, c, d): 
   e = list(sorted([a % 2, b % 2, c % 2, d % 2]))
   if e == [0, 0, 1, 1]: 
      return True
   return False
even_true = set()

def primes(a, b, c, d): 
   n = 0
   p = set([2, 3, 5, 7])
   for num in (a, b, c, d): 
      if num in p: n += 1
   return n == 2
primes_true = set()

def squares(a, b, c, d): 
   n = 0
   s = set([1, 4, 9])
   for num in (a, b, c, d): 
      if num in s: n += 1
   return n == 2
squares_true = set()

for i in xrange(1000, 10000): 
   nums = str(i)
   a, b, c, d = map(int, nums)
   if sums(a, b, c, d): 
      sums_true.add(i)
   if descending(a, b, c, d): 
      descending_true.add(i)
   if even(a, b, c, d): 
      even_true.add(i)
   if primes(a, b, c, d): 
      primes_true.add(i)
   if squares(a, b, c, d): 
      squares_true.add(i)

print 'Sums:', len(sums_true)
print 'Descending:', len(descending_true)
print 'Even:', len(even_true)
print 'Primes:', len(primes_true)
print 'Squares:', len(squares_true)
print 

print 'Sums & Descending:', len(sums_true & descending_true)
print 'Sums & Even:', len(sums_true & even_true)
print 'Sums & Primes:', len(sums_true & primes_true)
print 'Sums & Squares:', len(sums_true & squares_true)

print 'Descending & Even:', len(descending_true & even_true)
print 'Descending & Primes:', len(descending_true & primes_true)
print 'Descending & Squares:', len(descending_true & squares_true)

print 'Even & Primes:', len(even_true & primes_true)
print 'Even & Squares:', len(even_true & squares_true)

print 'Primes & Squares:', len(primes_true & squares_true)
print 

all = len(sums_true & descending_true & even_true & primes_true & squares_true)
print 'All:', all

Annotations for this paste:

Annotation number 1: output
Pasted by: sbp
When:2 years, 11 months ago
Share:Tweet this! | http://paste.lisp.org/+1N4L/1
Paste contents:
Raw Source | Display As
Sums: 165
Descending: 1200
Even: 3375
Primes: 3168
Squares: 2457

Sums & Descending: 23
Sums & Even: 125
Sums & Primes: 63
Sums & Squares: 62
Descending & Even: 500
Descending & Primes: 456
Descending & Squares: 336
Even & Primes: 1320
Even & Squares: 930
Primes & Squares: 864

All: 2

Colorize as:
Show Line Numbers
Index of paste annotations: 1

Lisppaste pastes can be made by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively.