Jul-17-2018, 04:32 PM
My current Code is below. I am attempting to take my outputs from this code and place it into a .txt or .csv file.
When I run this, I am getting the error "write() argument must be str, not int" -- does anyone have any suggestions on what I need to fix to make this work? have been struggling with it for a few days but cant seem to figure out the issue. Thank you in advance for your help!
When I run this, I am getting the error "write() argument must be str, not int" -- does anyone have any suggestions on what I need to fix to make this work? have been struggling with it for a few days but cant seem to figure out the issue. Thank you in advance for your help!
def getAllCombinations(s, length):
if length == 0:
return ['']
else:
ret = []
for idx, c in enumerate(s):
combos = getAllCombinations(s[0:idx] + s[idx+1:], length - 1)
for i in range(len(combos)):
combos[i] = c + combos[i]
ret += combos
return ret
def getPermutations(s, ret, swapIdx = 0):
if swapIdx == len(s):
ret.append(int(''.join(s)))
for i in range(swapIdx, len(s)):
cpy = [c for c in s]
cpy[swapIdx], cpy[i] = cpy[i], cpy[swapIdx]
getPermutations(cpy, ret, swapIdx + 1)
def getAllPermutations(i):
s = str(i)
allPerms = set()
for i in range(len(s)):
curCombos = getAllCombinations(s, i + 1)
for combo in curCombos:
ret = []
getPermutations(combo, ret)
allPerms = allPerms.union(set(ret))
return list(allPerms)
def isPrime(n):
if n==2 or n==3: return True
if n%2==0 or n<2: return False
for i in range(3,int(n**0.5)+1,2): # only odd numbers
if n%i==0:
return False
return True
def getNumPrimes(i):
perms = getAllPermutations(i)
numprimes = 0
for perm in perms:
if (isPrime(perm)):
numprimes += 1
return numprimes
def find_maxPrimes():
max = 0
maxNum = 0
for i in range (1000, 10000):
cur = getNumPrimes(i)
if (max < cur):
max = cur
maxNum = i
return maxNum
#print(find_maxPrimes())
def find_maxPrimes2():
# max = 0
# maxNum = 0
#Printing here directly
for i in range (1000, 10000):
print (i, " ---> ", getNumPrimes(i))
#print(find_maxPrimes2())
fh = open("numperms","a")
fh.write(find_maxPrimes())
fh.write(find_maxPrimes2())
fh.close()
