Skip to content

Instantly share code, notes, and snippets.

@ridv
Created April 12, 2016 07:53
Show Gist options
  • Save ridv/5f89538e1fa909d9e496d226a59f513b to your computer and use it in GitHub Desktop.
Save ridv/5f89538e1fa909d9e496d226a59f513b to your computer and use it in GitHub Desktop.
Da solution
#!/bin/python3
import itertools
import math
PRIMES = [3,5,7,11,13]
def memoizePrimes():
#limit = math.ceil(math.sqrt(1000000000000001))
limit = 100
for number in range(17,limit+1,2):
sqrt = math.sqrt(number)
for prime in PRIMES:
if number % prime == 0:
break
if prime > sqrt:
PRIMES.append(number)
break
def checkComposite(number):
for prime in PRIMES:
if number != prime and number % prime == 0:
return prime
def base10rep(num, base):
total = 0
#Least sig is at the beggining of written
index = len(num)-1
for pow in range(len(num)):
total += (num[index-pow] * (base**pow))
return total
def main():
memoizePrimes()
t = int(input())
coinJams = []
for i in range(t):
# n = len, j = disticnt
var = input().split(" ")
n = int(var[0])
j = int(var[1])
for numCenter in itertools.product(range(2), repeat=n-2):
canditate = [1]
for item in numCenter:
canditate.append(item)
canditate.append(1)
verifyList = []
for base in range(2,11):
numberInBase10 = base10rep(canditate, base)
compositeTest = checkComposite(numberInBase10)
if compositeTest is not None:
verifyList.append(compositeTest)
if len(verifyList) == 9:
coinJams.append("".join(str(x) for x in canditate) + " " + "".join(str(x) + " " for x in verifyList).rstrip())
if len(coinJams) == j:
print("Case #1:")
for coin in coinJams:
print(coin)
return
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment